学科分类
目录
基础

使用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
点击此处
隐藏目录