In [ ]:
# exception handling
# unexpected errors
In [2]:
# our program
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
print "results - {}".format(results)
In [3]:
# case 1:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
print "results - {}".format(results)
In [4]:
# case 2:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
print "results - {}".format(results)
In [5]:
# what are the various exception python supports?
In [6]:
import exceptions as e
In [7]:
print dir(e)
In [8]:
# try..except..else..finally
# try - computation steps or most important steps which could lead to exception
# except - what needs to be done when you hit on a exception
# else - if all is green with try .. what you want to do.
In [9]:
# All values are sane.
# try..else
try:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
except:
print "Please enter a number.Please make sure your denominator is non-zero"
else:
print "results - {}".format(results)
In [10]:
# lets give num1 as "string"
# try..except
try:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
except:
print "Please enter a number.Please make sure your denominator is non-zero"
else:
print "results - {}".format(results)
In [11]:
# lets give num1 as 10 and num2 as 0
# try .. except
try:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
except:
print "Please enter a number.Please make sure your denominator is non-zero"
else:
print "results - {}".format(results)
In [12]:
## more refining
In [22]:
try:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
except (ZeroDivisionError,NameError):
print "Please enter a number.Please make sure your denominator is non-zero"
else:
print "results - {}".format(results)
In [25]:
try:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
except ZeroDivisionError:
print "please make sure your denominator is non-zero"
except NameError:
print "Please enter a number."
else:
print "results - {}".format(results)
In [ ]:
# try..except..else..finally
# try - computation steps or most important steps which could lead to exception
# except - what needs to be done when you hit on a exception
# else - if all is green with try .. what you want to do.
# finally -
# case 1: i will give all valid values -> try..else..finally.
# case 2: i will give a invalid value .. managed by exceptions -> try..except..finally
# case 3: i will give a invalid value.. not managed by exceptions -> try..finally.. bombed with exception.
In [29]:
try:
num1 = input("please enter your num1:")
num2 = input("please enter your num2:")
results = num1/num2
except NameError:
print "Please enter a number."
else:
print "results - {}".format(results)
finally:
print "All izz well" # close all my resource here. db.close,file.close,socket.close
In [31]:
# raise
raise SyntaxError,"please clean your glasses!!!"
In [32]:
# you cannot raise every other word for exception
# you can only raise those exception which are part of exception class.
raise kumar
In [33]:
# custoomized exceptions
# kumar is a subclass of exception super class.
class kumar(Exception):
pass
raise kumar,"i am back"
In [ ]: