Exceptions in any programming language are the unexpected output of a script.Traditional example is dividing a number with zero (1/0). These exceptions will obviously halt our code. But if we use the try catch block then we can justify our code to keep executing. Sometimes we need to raise some exceptions to guide the user or program to go in specific direction. For Instance, the average salary of accounts department should not be greater than 40000, now integer value 40001 is normal and there is nothing wrong with it, even the compiler or interpreter will not find any issue regarding that. But, we programmers know that 40001 will be wrong input value for average salary of accounts department, we need to inform the user that 40001 is wrong value as it cannot be greater than 40000. Here the User Defined Exceptions topic comes in light. Follow the code to understand the concept.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | print("This is PythonHunter Blog by Pran Sukh") ''' This script will check that the input number should be = to 4 input 8 will execute the else block of try ''' class UserDefinedExecption(Exception): pass #hope you know about this.. if not don't worry I'll explain, just give a note on http://pransukh.Tumblr.com class ValueLarge(UserDefinedExecption): def __message(self): print("Excepiton Message from ValueLarge") class ValueSmall(UserDefinedExecption): def __message(self): print("Exception Message from ValueSmall") class ExceptionGenerator: def method(self,x): try: if(int(x)>4): raise ValueLarge elif (int(x)<4): raise ValueSmall elif (int(x)==4): print("Good !!") return "break" except ValueLarge as OBJ1: OBJ1._ValueLarge__message() except ValueSmall as OBJ2: OBJ2._ValueSmall__message() else: print("else block of try, will only work when there is no exception. Just like finally") finally: print("in finaly block") while True: X=input("Enter Number:") if(ExceptionGenerator().method(X) == "break"): break |
Note:- This code works in both Python 2.x and 3.x version. But in Python 3.x you don't need to pass "self" in method(self,x). in python 3.x every method works without "self" parameter, while in python 2.x you have to pass "self" parameter in every method call....
Stay tuned to my other blogs:- Python Hunter
raise us just like a java throw keyword,
ReplyDelete