使用raise语句抛出异常
在Python程序中的异常不仅可以自动触发异常,而且还可以由开发人员使用关键字raise抛出异常,如果程序中异常没有被处理,那么产生的异常会一层一层向上传递,直至程序无法处理。
raise语句用于引发特定的异常,其使用方式大致可分为3种:
1、由异常类名引发异常;
2、由异常对象引发异常;
3、由程序中出现过的异常引发异常。
接下来,通过实例演示raise语句的使用方法。
1.使用类名引发异常
在raise语句后添加具体的异常类,使用类名引发异常,语法格式如下:
raise 异常类名
当raise语句指定了异常的类名时,Python解释器会自动创建该异常类的对象,然后通过raise语句引发异常。示例如下:
raise NameError
运行程序,结果如下所示:
Traceback (most recent call last):
File "D:/Python项目/异常.py", line 1, in <module>
raise NameError
NameError
2.使用异常对象引发异常
使用异常对象引发相应异常,其语法格式如下:
raise 异常对象
示例如下:
name_error = NameError
raise name_error
上述代码创建了一个NameError类的对象name_error,然后使用raise通过该异常对象引发异常。
运行代码,结果如下所示:
Traceback (most recent call last):
File "D:/Python项目/异常.py", line 2, in <module>
raise name_error
NameError
3.由异常引发异常
仅使用raise关键字可重新引发刚才发生的异常,其语法格式如下:
raise
示例如下:
try:
num
except NameError as e:
raise
上述代码首先捕获try子句中的异常NameError,然后在except子句中通过raise再次引发NameError异常。
运行代码,结果如下所示:
Traceback (most recent call last):
File " D:/Python项目/异常.py", line 2, in <module>
num
NameError: name 'num' is not defined