KEMBAR78
Unit 4-Exception Handling in Python.pdf
Python Exception Handling
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:
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.
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")
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
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")
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
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'>
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'>
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")
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.
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
Declaring Multiple Exceptions
try:
a=10/0
except(ArithmeticError, IOError):
print("Arithmetic Exception")
else:
print("Successfully Done")
Output:
Arithmetic Exception
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
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
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
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>
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.
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
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!
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
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

Unit 4-Exception Handling in Python.pdf

  • 1.
  • 2.
    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
  • 13.
    Declaring Multiple Exceptions try: a=10/0 except(ArithmeticError,IOError): print("Arithmetic Exception") else: print("Successfully Done") Output: Arithmetic Exception
  • 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 • 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