python如何关闭异常自动关联上下文
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关python如何关闭异常自动关联上下文,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何关闭异常自动关联上下文当你在处理异常时,由于处理
千家信息网最后更新 2026年11月03日python如何关闭异常自动关联上下文
这篇文章将为大家详细讲解有关python如何关闭异常自动关联上下文,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
如何关闭异常自动关联上下文
当你在处理异常时,由于处理不当或者其他问题,再次抛出另一个异常时,往外抛出的异常也会携带原始的异常信息。
就像这样子。
try: print(1 / 0) except Exception as exc: raise RuntimeError("Something bad happened")从输出可以看到两个异常信息
Traceback (most recent call last): File "demo.py", line 2, inprint(1 / 0) ZeroDivisionError: division by zero During handling of the above exception, another exception occurred: Traceback (most recent call last): File "demo.py", line 4, in raise RuntimeError("Something bad happened") RuntimeError: Something bad happened
如果在异常处理程序或 finally 块中引发异常,默认情况下,异常机制会隐式工作会将先前的异常附加为新异常的 __context__属性。这就是 Python 默认开启的自动关联异常上下文。
如果你想自己控制这个上下文,可以加个 from 关键字(from 语法会有个限制,就是第二个表达式必须是另一个异常类或实例。),来表明你的新异常是直接由哪个异常引起的。
try: print(1 / 0) except Exception as exc: raise RuntimeError("Something bad happened") from exc输出如下
Traceback (most recent call last): File "demo.py", line 2, inprint(1 / 0) ZeroDivisionError: division by zero The above exception was the direct cause of the following exception: Traceback (most recent call last): File "demo.py", line 4, in raise RuntimeError("Something bad happened") from exc RuntimeError: Something bad happened
当然,你也可以通过with_traceback()方法为异常设置上下文__context__属性,这也能在traceback更好的显示异常信息。
try: print(1 / 0) except Exception as exc: raise RuntimeError("bad thing").with_traceback(exc)最后,如果我想彻底关闭这个自动关联异常上下文的机制?有什么办法呢?
可以使用 raise...from None,从下面的例子上看,已经没有了原始异常
$ cat demo.py try: print(1 / 0) except Exception as exc: raise RuntimeError("Something bad happened") from None $ $ python demo.py Traceback (most recent call last): File "demo.py", line 4, in raise RuntimeError("Something bad happened") from None RuntimeError: Something bad happened (PythonCodingTime) 关于"python如何关闭异常自动关联上下文"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
上下
上下文
关联
信息
篇文章
处理
原始
就是
属性
更多
机制
输出
不当
不错
实用
处理不当
两个
例子
关键
关键字
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
花魁咖啡
互联网科技工作委员会主任
重生之互联网科技帝国
科技平台互联网
科技信息互联网
互联网与科技金融数据
互联网金融 科技金融
互联网与新科技
艾特科技互联网
美国互联网前沿科技
深圳卡尔迅互联网科技有限公司怎么样
青海省互联网新科技
互联网 科技馆
荆州市昕露互联网络科技有限公司
注册互联网科技公司经营范围大全
互联网保险科技创业
迪庆互联网科技招生
广州新华互联网科技学校电竞方面
黑科技 体验场景 互联网大会
上海互联网科技公司ppt
互联网科技海报
上海互联网科技有限公司
广州善班互联网科技
互联网汽车科技小镇
温州喔噻互联网科技有限公司
山东星卡互联网科技有限公司官网
产业互联网科技服务公司
本届互联网大会上的黑科技
广东猫王互联网科技有限公司电话
互联网的黑科技实验室