如何在python 3中捕获任何异常但是一组异常

时间:2018-06-18 05:08:07

标签: python-3.x

除了像SyntaxErrorAssertionError之类的一些你想要永远不被捕获的异常之外,什么可能是一种捕捉所有异常的pythonic方式?

我们想要迭代大量输入文件的动机是,当只有一个或几个文件无法处理时,使用try可以优雅地继续。抓住SyntaxErrorAssertionError这样的内容会太多而无法继续运行,因为它们意味着代码破坏的程度远高于我们想要放弃的任何代码。

在更深层次上,除了python 3的Exception层次结构之外,是否有任何现有的异常分组可以更好地区分异常类型?我发现给定的层次结构非常合理。

2 个答案:

答案 0 :(得分:4)

这个怎么样:

try:
    # do some stuff here
except SyntaxError:
    # do not catch this one
    raise
except AssertionError:
    # do not catch this one
    raise
except Exception:
    # catch all the others

答案 1 :(得分:1)

如何广泛地捕获异常,然后检查捕获的异常是否是您要捕获的异常。

enter code here
try:
    #code
except Exception:
    if Exception == AssertionError:
        # do smthg
    elseif Exception == SyntaxError:
        # do smthg
    else:
        return
相关问题