python 抛出异常与自定义异常raise
使用raise抛出异常 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。 演示raise用法
1
2
3
4
5
6
7
8
|
try : s = None if s is None : print "s 是空对象" raise NameError #如果引发NameError异常,后面的代码将不能执行 print len (s) except TypeError: print "空对象没有长度" |
自定义异常 python允许程序员自定义异常,用于描述python中没有涉及的异常情况,自定义异常必须继承Exception类,自定义异常按照命名规范以"Error"结尾,显示地告诉程序员这是异常。自定义异常使用raise语句引发,而且只能通过人工方式触发。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
from __future__ import division class DivisionException(Exception): def __init__( self , x, y): Exception.__init__ ( self , x, y) #调用基类的__init__进行初始化 self .x = x self .y = y if __name__ = = "__main__" : try : x = 3 y = 2 if x % y > 0 : #如果大于0, 则不能被初始化,抛出异常 print x / y raise DivisionException(x, y) except DivisionException,div: #div 表示DivisionException的实例对象 print "DivisionExcetion: x/y = %.2f" % (div.x / div.y) |