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

2024-04-24

Consider

try:
   import someProprietaryModule
except ImportError:
   raise ImportError('It appears that <someProprietaryModule> is not installed...')

运行时,如果未安装 someProprietaryModule,则会看到:

(traceback data)
ImportError: unknown module: someProprietaryModule

During handling of the above exception, another exception occurred:

(traceback data)
ImportError: It appears that <someProprietaryModule> is not installed...

也许我不希望出现“在处理上述异常期间...”行(及其上面的行)。我可以这样做:

_moduleInstalled = True
try:
   import someProprietaryModule
except ImportError:
   _moduleInstalled = False
if not _moduleInstalled: 
   raise ImportError('It appears that <someProprietaryModule> is not installed...')

但这感觉有点像黑客。我还能做什么?


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

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

这已经达到了预期的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐