例外也是对象
例外是从内置 BaseException
继承的常规 Python 对象。Python 脚本可以使用 raise
语句来中断执行,从而导致 Python 在该点打印调用堆栈的堆栈跟踪以及异常实例的表示。例如:
>>> def failing_function():
... raise ValueError('Example error!')
>>> failing_function()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in failing_function
ValueError: Example error!
其中说'Example error!'
的 ValueError
是由我们的 failing_function()
提出的,这是在翻译中执行的。
调用代码可以选择处理调用可以引发的任何和所有类型的异常:
>>> try:
... failing_function()
... except ValueError:
... print('Handled the error')
Handled the error
你可以通过在异常处理代码的 except...
部分中分配异常对象来获取异常对象:
>>> try:
... failing_function()
... except ValueError as e:
... print('Caught exception', repr(e))
Caught exception ValueError('Example error!',)
可以在 Python 文档中找到内置 Python 异常及其描述的完整列表: https : //docs.python.org/3.5/library/exceptions.html 。以下是按层次排列的完整列表: 异常层次结构 。