2. What is an Exception?
• An exception can be defined as an unusual condition in a program resulting in the
interruption in the flow of the program.
• Whenever an exception occurs, the program stops the execution, and thus the further code
is not executed.
• Therefore, an exception is the run-time errors that are unable to handle to Python script.
• An exception is a Python object that represents an error
• Python provides a way to handle the exception so that the code can be executed without
any interruption.
• If we do not handle the exception, the interpreter doesn't execute all the code that exists
after the exception.
• Python has many built-in exceptions that enable our program to run without interruption
and give the output. These exceptions are given below:
3. Common Exceptions
• Python provides the number of built-in exceptions, but here we are describing the common
standard exceptions.
• A list of common exceptions that can be thrown from a standard Python program is given
below.
• ZeroDivisionError: Occurs when a number is divided by zero.
• NameError: It occurs when a name is not found. It may be local or global.
• IndentationError: If incorrect indentation is given.
• IOError: It occurs when Input Output operation fails.
• EOFError: It occurs when the end of the file is reached, and yet operations are being
performed.
4. The problem without handling exceptions
• The exception is an abnormal condition that halts the execution of the program.
• Suppose we have two variables a and b, which take the input from the user and perform
the division of these values.
• What if the user entered the zero as the denominator?
• It will interrupt the program execution and through a ZeroDivision exception.
Example:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
c = a/b
print("a/b = %d" %c)
#other code:
print(“Some other part of the program")
5. The try-except statement
• If the Python program contains suspicious code that may throw the exception, we must
place that code in the try block.
• The try block must be followed with the except statement, which contains a block of code
that will be executed if there is some exception in the try block.
Syntax:
try:
#block of code
except Exception1:
#block of code
except Exception2:
#block of code
#other code
6. The try-except statement- Example
Example:
try:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
c = a/b
except:
print("Can't divide with zero")
Output:
Enter a:50
Enter b:0
Can't divide with zero
Example:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
c = a/b
print("a/b = %d" %c)
#other code:
print(“Some other part of the program")
7. The try-except statement- Example
• We can also use the else statement with the try-except statement in which, we can place
the code which will be executed in the scenario if no exception occurs in the try block.
• The syntax to use the else statement with the try-except statement is given below.
try:
#block of code
except Exception1:
#block of code
else:
#this code executes if no except block is executed
8. The try-except statement- Example
Example:
try:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
c = a/b
print("a/b = %d"%c)
# Using Exception with except statement.
#If we print(Exception) it will return exception class
except Exception:
print("can't divide by zero")
print(Exception)
else:
print("I am else block")
Output:
Enter a:50
Enter b:0
can't divide by zero
<class 'Exception'>
9. The try-except statement- Example
The except statement with no exception
• Python provides the flexibility not to specify the name of exception with the exception
statement.
try:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
c = a/b;
print("a/b = %d"%c)
except:
print("can't divide by zero")
else:
print("Hi I am else block")
Output:
Enter a:50
Enter b:0
can't divide by zero
<class 'Exception'>
10. The try-except statement- Example
• The except statement using with exception variable
• We can use the exception variable with the except statement.
• It is used by using the as keyword. this object will return the cause of the exception.
Output:
Enter a:50
Enter b:0
can't divide by zero
division by zero
Example:
try:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
c = a/b;
print("a/b = %d"%c)
# Using exception object with the except statement
except Exception as e:
print("can't divide by zero")
print(e)
except:
print("can't divide by zero")
else:
print("Hi I am else block")
11. Important Points
• Python facilitates us to not specify the exception with the except statement.
• We can declare multiple exceptions in the except statement since the try block may
contain the statements which throw the different type of exceptions.
• We can also specify an else block along with the try-except statement, which will be
executed if no exception is raised in the try block.
• The statements that don't throw the exception should be placed inside the else block.
12. Declaring Multiple Exceptions
• The Python allows us to declare the multiple exceptions with the except clause.
• Declaring multiple exceptions is useful in the cases where a try block throws multiple
exceptions.
Syntax
try:
#block of code
except (<Exception 1>,<Exception 2>,<Exception 3>,...<Exception n>)
#block of code
else:
#block of code
14. The try...finally block
• Python provides the optional finally statement, which is used with the try statement.
• It is executed no matter what exception occurs and used to release the external resource.
• The finally block provides a guarantee of the execution.
• We can use the finally block with the try block in which we can pace the necessary code,
which must be executed before the try statement throws an exception.
Syntax
try:
# block of code
# this may throw an exception
finally:
# block of code
# this will always be executed
15. The try...finally block
• Python provides the optional finally statement, which is used with the try statement.
• It is executed no matter what exception occurs and used to release the external resource.
• The finally block provides a guarantee of the execution.
• We can use the finally block with the try block in which we can pace the necessary code,
which must be executed before the try statement throws an exception.
Syntax
try:
# block of code
# this may throw an exception
finally:
# block of code
# this will always be executed
16. The try...finally block
try:
fileptr = open("file2.txt","r")
try:
fileptr.write("Hi I am good")
finally:
fileptr.close()
print("file closed")
except:
print("Error")
Output:
File closed
Error
17. Raising exceptions
• An exception can be raised forcefully by using the raise clause in Python.
• It is useful in in that scenario where we need to raise an exception to stop the execution of the
program.
• For example, there is a program that requires 2GB memory for execution, and if the program tries
to occupy 2GB of memory, then we can raise an exception to stop the execution of the program.
• The syntax to use the raise statement is given below.
Syntax
raise Exception_class,<value>
18. Raising exceptions
Points to remember
• To raise an exception, the raise statement is used.
• The exception class name follows it.
• An exception can be provided with a value that can be given in the parenthesis.
• To access the value "as" keyword is used. "e" is used as a reference variable which stores
the value of the exception.
• We can pass the value to an exception to specify the exception type.
19. Raise the exception
Example 1:
try:
age = int(input("Enter the age:"))
if(age<18):
raise ValueError
else:
print("the age is valid")
except ValueError:
print("The age is not valid")
Output:
Enter the age: 15
The age is not valid
20. Raise the exception with message
Example 2: Raise the exception with message
try:
num = int(input("Enter a positive integer: "))
if(num <= 0):
# we can pass the message in the raise statement
raise ValueError("That is a negative number!")
except ValueError as e:
print(e) Output:
Enter a positive integer: -10
That is a negative number!
21. Raising exceptions
Example 3
try:
a = int(input("Enter a:"))
b = int(input("Enter b:"))
if b is 0:
raise ArithmeticError
else:
print("a/b = ", a/b)
except ArithmeticError:
print("The value of b can't be 0")
Output:
Enter a: 50
Enter b: 0
The value of b can't be 0
22. Custom Exception
• The Python allows us to create our exceptions that can be raised from the program and
caught using the except clause.
Example
class ErrorInCode(Exception):
def __init__(self, data):
self.data = data
def __str__(self):
return repr(self.data)
try:
raise ErrorInCode(2000)
except ErrorInCode as ae:
print("Received error:", ae.data)
Output:
Received error: 2000