Skip to main content

User Defined Exception in python. On Python Hunter





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.


 Follow Python Hunter on youtube   Follow Python Hunter on twitter Follow on tumbl ( at your own risk ) check profile on linkedIn 


 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

Comments

Post a Comment

Thanks in anticipation.

Popular posts from this blog

Understanding the usage of underscore( _ ) of Python for beginner. On Python Hunter

Introduction: Just like you, a newbie in python scripting language, me too was confused about lot of new things in python that are not valid or available in other languages like Java, .Net etc. Just like other things i had seen the use of '_' underscore in python, at beginning level that flabbergasted me for a while.      With some research and practice i have summarised the following usage of '_' underscore in python. Hope you will find it helpful at beginning level. First Usage : Hold the previous output value. When used in interpreter. 1 2 3 4 5 6 7 _ = input () # For example you typed '5' print (_) # This will print '5' print ( int ( _ ) * int ( _ ) ) # This will print '25' print ( int ( _ ) + 10 ) The above will print '15', because last input was "5" and in above   line of code is producing '25' as output but not being handl

XSLT apply import tag by pran sukh on python hunter blog

Modular Programming is good attitude of best programmer. We often need to keep our code in modular approach so that is would be easy to maintain  and update or remove dead code and also it ease the process of bug tracking. XML and XSL  processors provide freedom to import multiple imports to process the same  XML  document. In the following  XML  data we have data from collage where student's and teacher's data is given. But we want to process the same  XML  data with different XSL files. Here in this example we want to show the teacher data in red background color and student data in green background color. Data.xml 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 <?xml version = "1.0"?> <?xml-stylesheet type = "text/xsl" href = "RootXSLT.xsl"?> <data> <DataFor name = "Student" id = "001" > <firstname>

Understanding "with" keyword in python, on Python Hunter

J ust like anything in python, keyword "with" is introduced in python to make the things little easy. Imagine a situation where you have to manage the resources e.g opening file and closing them after the code is executed on file. To achieve this sort of task we have to write the code as follow:      Download   But if you do it often you could do this as follow to make the code reusable: Download But why do you need to do this when you know that you have to execute the only for once.  To answer this question  python-dev team finally came up with following approach: Download  Note:- Make sure you have "file.txt" and python code file in same dir. The "with"  keyword replaces the try finally block. "with" keyword executes the openFileClass() context manager and internally calls the __enter__(self) method, and whatever is being returned from __enter__(self) method is being stored in tar