Python raise语句:主动抛出异常
可以使用 raise 语句来抛出异常,该语句后面需要带一个对象,该对象必须是派生自 BaseException。基本语法如下:
raise 派生自BaseException的对象
下面就是一个代码主动抛出异常的例子,其在检测到参数 b 为 0 时就抛出异常。
>>> def finally_demo(a, b):
... if b == 0:
... raise Exception('my personal exception') # 抛出异常
...
>>> try: # 捕捉异常
... finally_demo(12, 0)
... except Exception, e: # 捕捉任意异常
... print("Exception Message: %s" % e.message) # 显示异常信息
... # 结束异常捕捉
Exception Message: my personal exception # 第8行的输出
>>> raise 8 # 对象8不是继承自BaseException,抛出TypeError异常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: exceptions must derive from BaseException
>>> raise Exception('my personal exception') # 抛出Exception异常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Exception: my personal exception
下面是一个使用自定义异常的例子,涉及类的使用。类的使用需要到后面的章节才会详细介绍,这里简单了解即可。完整代码如下:
>>> class UserdefException(Exception): # 自定义的异常类
... def __init__(self, msg):
... self.msg = msg
... # 定义结束
>>> try: # 进入捕捉区
... raise UserdefException("experiment") # 抛出异常
... except UserdefException as ex_obj: # 捕捉到该异常
... print(u"子定义异常,错误信息: %s" % ex_obj)
... # 捕捉区结束
子定义异常,错误信息: experiment # 第8行输出的信息
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。