捕获由外部库引发的(特定)通用异常

时间:2016-07-01 04:49:59

标签: python

我正在使用外部库,在某些情况下会在其中一个模块中引发通用Exception

if some_condition:
    raise Exception('DSSP failed to produce an output')

这只发生在一些边缘情况下,但仍然是我想要捕捉和处理的东西。

所以,除了诅咒原始编码员提出通用Exception之外,我还有什么选择?我只想在原始代码中捕获并处理这一特定行。什么是最恐怖的处理方式?

1 个答案:

答案 0 :(得分:2)

抓住Exception并重新启动它是否不是您正在寻找的例外情况:

try:
    do_thing()
except Exception as e:
    if type(e) is not Exception:
        # Not what we're looking for. Let it pass.
        raise
    handle(e)

如果你想确定它是你正在寻找的例外,你可以添加一些其他支票,例如检查例外' message