Today i learned something about user defined exception class in python and posting in my blog so that i can remember in future :)
This is my check_age.py file
from own_Exeption import teenageException,kidException,childException
def age(x):
try:
if( x >= 14 ) and (x <= 19):
raise teenageException
elif(x >= 8 ) and (x <= 13) :
raise kidException
elif(x >= 2 ) and (x <= 7) :
raise childException
#else:
# print("Ags is : "+str(x))
except teenageException:
print("WARNING : You are teenage not allowed here")
except kidException:
print("WARNING: you are kid not allowed here")
except childException:
print("WARNING: you are child not allowed here")
else:
print("INFO: You are the right age {} adult person".format(x))
finally:
print("INFO: End of the try/except block")
age(3)
age(17)
age(21)
Here is my user defined exception class
cat own_Exeption.py
class teenageException(Exception):
pass
class kidException(Exception):
pass
class childException(Exception):
pass
Initially i tried without try/except block. it seems like execution getting halt as soon as raise block invoked. So i tried with try/except block to catch the respective and print the warning message. here is my output.
WARNING: you are child not allowed here
INFO: End of the try/except block
WARNING : You are teenage not allowed here
INFO: End of the try/except block
INFO: You are the right age 21 adult person
INFO: End of the try/except block
i could also use raise statement inside except block like below to halt the code from further execution
from own_Exeption import teenageException,kidException,childException
def age(x):
try:
if( x >= 14 ) and (x <= 19):
raise teenageException
elif(x >= 8 ) and (x <= 13) :
raise kidException
elif(x >= 2 ) and (x <= 7) :
raise childException
#else:
# print("Ags is : "+str(x))
except teenageException:
print("WARNING : You are teenage not allowed here")
raise teenageException
except kidException:
print("WARNING: you are kid not allowed here")
raise kidException
except childException:
print("WARNING: you are child not allowed here")
raise childException
else:
print("INFO: You are the right age {} adult person".format(x))
finally:
print("INFO: End of the try/except block")
age(3)
age(17)
age(21)
This will stop execution withing first error.
WARNING: you are child not allowed here
INFO: End of the try/except block
Traceback (most recent call last):
File "sat1.py", line 27, in
age(3)
File "sat1.py", line 21, in age
raise childException
own_Exeption.childException
No comments:
Post a Comment