【发布时间】:2011-10-12 15:20:52
【问题描述】:
我用 Python 编程已经有一段时间了,但我的工作主要是创建小型实用程序脚本。我认为 Python 是一门很棒的语言,因为它很有趣,而且可以很容易地编写干净的代码。
但是,有一个烦恼我还没有找到解决方法:由于它的动态特性,可以从各种来源抛出异常,如果不被捕获它们会杀死你的程序。对我来说,这对于“大型”程序来说是一种痛苦。
在 Java 中(并不是说我对 Java 比对 Python 更了解),编译器实际上静态地强制处理异常,以便捕获所有可能的异常。是否有可能用 Python 实现相同的目标?
【问题讨论】:
-
有一篇很好的博客文章讨论了在 python 中捕获异常的不同方法的优缺点:blog.ianbicking.org/good-catch-all-exceptions.html
-
即使在 Java 中,编译器也不会寻找
RuntimeException及其子类。这是一件好事——你不想在每一种方法中都写except (OutOfMemoryException e) { /* well, we're screwed */; raise e; },对吗?