see the example source code carefully referencing this structure.
...
__author__ = 'mare'
#exception test
def divide(a, b):
return a/b
try:
c = divide(5,0)
except:
print("Exception is occured!!")
#-> Exception is occured!!
try:
c = divide(5, 'string')
except ZeroDivisionError:
print('donot input zero parameter')
except TypeError:
print('all parameter should be number!')
except:
print('I don know what error occur')
#->all parameter should be number!
try:
c = divide(5, 2)
except ZeroDivisionError:
print('do not input zero parameter')
except TypeError:
print('all parameter should be only number')
except:
print('ZeroDivisionError, exception TypeError')
else:
print('Result: {0}'.format(c) )
finally:
print('This sentence is always printed')
#Result: 2.5
#This sentence is always printed
try:
c = divide(5, "af")
except TypeError as e:
print('error: ', e.args[0] )
except Exception:
print('I do not know what error occur')
#error: unsupported operand type(s) for /: 'int' and 'str'
try:
c = divide(5, 0)
except (ZeroDivisionError, OverflowError, FloatingPointError, FloatingPointError):
print('this error is relative to arithmetic')
except TypeError:
print('all parameter should be only number')
except Exception:
print('I do not know what error occur')
#this error is relative to arithmetic
try:
c = divide(5, 0)
except ArithmeticError:
print('this error is relative to arithmetic')
except TypeError:
print('all parameter should be only number')
except Exception:
print('I do not know what error occur')
#this error is relative to arithmetic
#raise : uesr error message send
def RaiseErrorFunc():
raise NameError
try:
RaiseErrorFunc()
except:
print("name error is catched")
#--------------user error exception
class NegativeDivisionError(Exception):
def __init__(self, value):
self.value = value
def PositiveDivide(a, b):
if(b < 0):
raise NegativeDivisionError(b)
return a/b
try:
ret = PositiveDivide(10, -3)
print('10 / 3 = {0}'.format(ret))
except NegativeDivisionError as e:
print('Error - second argument of positiveDivide is ', e.value)
except ZeroDivisionError as e:
print('Error - ', e.args[0] )
except:
print("Unexpected exception!")
#Error - second argument of positiveDivide is -3
## assert function
def foo(x):
assert type(x) == int, "input value must be integer"
return x*10
ret = foo("a")
print( ret )
"""
Traceback (most recent call last):
File "/Users/mare/PycharmProjects/γ·γ
γ
λ°μ€γ
γ
/pypy.py", line 124, in < module >
ret = foo("a")
File "/Users/mare/PycharmProjects/γ·γ
γ
λ°μ€γ
γ
/pypy.py", line 121, in foo
AssertionError: input value must be integer
"""
---

No comments:
Post a Comment