What is anException?
• 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
• Pythonprovides 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 withouthandling 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
• Pythonfacilitates 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
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
• Anexception 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 toremember
• 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
Example1:
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 exceptionwith 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
• ThePython 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