python的异常链
raise 语句支持可选的 from 子句,该子句用于启用链式异常。 例如:
# exc must be exception instance or None. raise RuntimeError from exc
转换异常时,这种方式很有用。例如:
>>>
>>> def func():
... raise ConnectionError
...
>>> try:
... func()
... except ConnectionError as exc:
... raise RuntimeError('Failed to open database') from exc
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "<stdin>", line 2, in func
ConnectionError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
RuntimeError: Failed to open database
异常链会在 except 或 finally 子句内部引发异常时自动生成。 这可以通过使用 from None 这样的写法来禁用:
>>>
>>> try:
... open('database.sqlite')
... except OSError:
... raise RuntimeError from None
...
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
RuntimeError
...全文
相关推荐
Python异常捕获:异常链与上下文保留技巧.pdf
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用
异常链处理:Python错误上下文保留技巧.pdf
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用
在公司推销Stackless python的ppt
异常链:在Stackless Python中,异常可以被链接起来,形成一个异常链。这种特性有助于调试,因为它能保留所有异常发生的上下文,使开发者能更好地理解错误的来源和传播路径。4.
Python自学教程-20-异常传递的思路分析.ev4.rar
除了基本的异常处理,Python还提供了一种称为“异常链”的机制。
python-3.5.1
**错误处理**: - **异常链**:Python 3.5支持异常链,可以在捕获并处理一个异常后,将原始异常信息保留下来,这对于调试和日志记录非常有用。5.


