python - python 3.5+中如何在没有原始回溯的情况下在except块中引发异常
问题描述
库代码可以引发自定义库异常;我想抓住那个并提出我自己的异常,而不附加原始异常和原始回溯信息:
try:
can_raise_custom_lib_exception()
except custom_lib_exception as e:
cleanup()
raise myOwnException("my own extra text")
以这种方式抛出原始异常(带有回溯),消息:
在处理上述异常的过程中,又出现了一个异常:
显示后跟 MyOwnException
(带有回溯)。
是否可以隐藏原始异常并仅显示我的异常?看起来 python 3.5+ 将回溯信息附加到错误中,我想完全隐藏第一个。
解决方案
用于raise from None
抑制较早的异常:
try:
can_raise_custom_lib_exception()
except custom_lib_exception as e:
cleanup()
raise myOwnException("my own extra text") from None
7.8. 加薪声明
[...]可以通过在子句中
指定来显式抑制异常链接:None
from
推荐阅读
- javascript - 是否存在由工作线程填充的阻塞 ArrayBuffer?
- laravel - 带有中间表的 Laravel 工厂
- excel - 使用组合框 VBA 中的选项抓取网站数据
- javascript - JavaScript 和 PHP 中的双向服务器/客户端通信
- bash - 使用 kubectl 通过 bash 脚本在 postgres 中插入 json
- r - 对数据进行子集化并创建一个显示最佳分布的图表
- angular - 在不请求 API 的情况下检查令牌过期
- javascript - Discord.JS 排行榜
- go - 检测 goroutine 是否已经在运行
- ruby-on-rails - ActionText 正文的值始终为“”(空字符串)