python如何关闭异常自动关联上下文
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章将为大家详细讲解有关python如何关闭异常自动关联上下文,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何关闭异常自动关联上下文当你在处理异常时,由于处理
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
思格尔网络技术
ns黑魂重置服务器
论文 英文数据库
数据库创建表格定义外键
服务器cpu占用过高的危害
学网络安全一定要考研吗
魔兽 服务器排队
网络技术助理岗位
软件开发二次结构
服务器在国外的视频
山铝计算机网络技术校企合作
网络安全泄密怎么办
云交易软件开发
pos机有网老是连接服务器
江西常用服务器售后保障
中国心电数据库
delphi数据库模块
软件开发后的培训
杭州文鼎网络技术有限公司
警察网络安全保卫工作总结
广东合道互联网科技有限公司待遇
数据库是否型
复制的数据库文件
朵儿互联网科技
关于网络安全知识名人名言
excel服务器进销存
sql如何创建用户数据库
管理房间服务器
ssh远程操作服务器
自动化设备控制软件开发