• 8.4. 抛出异常

    8.4. 抛出异常

    raise 语句允许程序员强制发生指定的异常。例如:

    1. >>> raise NameError('HiThere')
    2. Traceback (most recent call last):
    3. File "<stdin>", line 1, in <module>
    4. NameError: HiThere

    raise 唯一的参数就是要抛出的异常。这个参数必须是一个异常实例或者是一个异常类(派生自 Exception 的类)。如果传递的是一个异常类,它将通过调用没有参数的构造函数来隐式实例化:

    1. raise ValueError # shorthand for 'raise ValueError()'

    如果你需要确定是否引发了异常但不打算处理它,则可以使用更简单的 raise 语句形式重新引发异常

    1. >>> try:
    2. ... raise NameError('HiThere')
    3. ... except NameError:
    4. ... print('An exception flew by!')
    5. ... raise
    6. ...
    7. An exception flew by!
    8. Traceback (most recent call last):
    9. File "<stdin>", line 2, in <module>
    10. NameError: HiThere