8.4. 抛出异常
raise
语句允许程序员强制发生指定的异常。例如:
- >>> raise NameError('HiThere')
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- NameError: HiThere
raise
唯一的参数就是要抛出的异常。这个参数必须是一个异常实例或者是一个异常类(派生自 Exception
的类)。如果传递的是一个异常类,它将通过调用没有参数的构造函数来隐式实例化:
- raise ValueError # shorthand for 'raise ValueError()'
如果你需要确定是否引发了异常但不打算处理它,则可以使用更简单的 raise
语句形式重新引发异常
- >>> try:
- ... raise NameError('HiThere')
- ... except NameError:
- ... print('An exception flew by!')
- ... raise
- ...
- An exception flew by!
- Traceback (most recent call last):
- File "<stdin>", line 2, in <module>
- NameError: HiThere