为了账号安全,请及时绑定邮箱和手机立即绑定

当我提出自己的异常作为响应时,如何更轻松地抑制以前的异常?

当我提出自己的异常作为响应时,如何更轻松地抑制以前的异常?

Cats萌萌 2021-03-31 07:08:43
考虑try:   import someProprietaryModuleexcept ImportError:   raise ImportError('It appears that <someProprietaryModule> is not installed...')运行时,如果未安装someProprietaryModule,则会看到:(traceback data)ImportError: unknown module: someProprietaryModuleDuring handling of the above exception, another exception occurred:(traceback data)ImportError: It appears that <someProprietaryModule> is not installed...也许我不希望出现“在处理上述异常...期间”(及其上方的线)。我可以这样做:_moduleInstalled = Truetry:   import someProprietaryModuleexcept ImportError:   _moduleInstalled = Falseif not _moduleInstalled:    raise ImportError('It appears that <someProprietaryModule> is not installed...')但这感觉有点像骇客。我还能做什么?
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

在raise ... from None这种情况下,可能会使用Python 3.3及更高版本。


try:

   import someProprietaryModule

except ImportError:

   raise ImportError('It appears that <someProprietaryModule> is not installed...') from None

这具有期望的结果。


查看完整回答
反对 回复 2021-04-01
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

这可以在Python 2.7和Python 3中完成:


try:

    import someProprietaryModule

except ImportError as e:

    raised_error = e


if isinstance(raised_error, ImportError):

    raise ImportError('It appears that <someProprietaryModule> is not installed...')


查看完整回答
反对 回复 2021-04-01
  • 2 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号