确保所有异常都在 Python 中捕获

lan*_*ng2 5 python exception

我已经用 Python 编程一段时间了,但我的工作主要是创建小型实用程序脚本。我认为 Python 是一种很棒的语言,因为它很有趣,而且可以很容易地编写干净的代码。

然而,有一个我还没有找到解决办法的烦恼:由于它的动态特性,可以从各种来源抛出异常,如果它们没有被捕获,它们将杀死您的程序。对我来说,这对“大型”程序来说是一种痛苦。

在 Java 中(并不是说我比 Python 更了解 Java),编译器实际上静态地强制处理异常,以便捕获所有可能的异常。是否有可能用 Python 实现相同的目标?

Con*_*ius 4

您可以使用简单的except:语句捕获所有异常。但这被认为是危险的,因为这也涵盖了语法错误。

最佳实践是用一个except子句涵盖所有可能的和预期的异常类型。考虑以下示例:

except (IOError, ArgumentError), e:
    print(e)
Run Code Online (Sandbox Code Playgroud)

此示例捕获了两个预期的异常,所有其他异常都将失败并被写入stderr.

  • ` except` 无法捕获语法错误 (4认同)