How to pass argument to an Exception in Python?
Last Updated :
07 Oct, 2021
There might arise a situation where there is a need for additional information from an exception raised by Python.
Python has two types of exceptions namely, Built-In Exceptions and User-Defined Exceptions.
Why use Argument in Exceptions?
Using arguments for Exceptions in Python is useful for the following reasons:
- It can be used to gain additional information about the error encountered.
- As contents of an Argument can vary depending upon different types of Exceptions in Python, Variables can be supplied to the Exceptions to capture the essence of the encountered errors. Same error can occur of different causes, Arguments helps us identify the specific cause for an error using the except clause.
- It can also be used to trap multiple exceptions, by using a variable to follow the tuple of Exceptions.
Arguments in Built-in Exceptions:
The below codes demonstrates use of Argument with Built-in Exceptions:
Example 1:
Python3
try :
b = float ( 100 + 50 / 0 )
except Exception as Argument:
print ( 'This is the Argument\n' , Argument)
|
Output:
This is the Argument
division by zero
Example 2:
Python3
my_string = "GeeksForGeeks"
try :
b = float (my_string / 20 )
except Exception as Argument:
print ( 'This is the Argument\n' , Argument)
|
Output:
This is the Argument
unsupported operand type(s) for /: 'str' and 'int'
Arguments in User-defined Exceptions:
The below codes demonstrates use of Argument with User-defined Exceptions:
Example 1:
Python3
class MyError(Exception):
def __init__( self , value):
self .value = value
def __str__( self ):
return ( repr ( self .value))
try :
raise (MyError( "Some Error Data" ))
except MyError as Argument:
print ( 'This is the Argument\n' , Argument)
|
Output:
This is the Argument
'Some Error Data'
Example 2:
Python3
class Error(Exception):
pass
class TransitionError(Error):
def __init__( self , prev, nex, msg):
self .prev = prev
self . next = nex
try :
raise (TransitionError( 2 , 3 * 2 , "Not Allowed" ))
except TransitionError as Argument:
print ( 'Exception occurred: ' , Argument)
|
Output:
Exception occurred: (2, 6, 'Not Allowed')