如何编写一个 try/except 块来捕获所有 Python 异常?

pythonserver side programmingprogramming更新于 2025/12/27 1:16:17

一般经验法则是,虽然您可以使用下面的代码捕获所有异常,但您不应该这样做:

try:
    #do_something()
except:
    print "Exception Caught!"

但是,这也会捕获我们可能不感兴趣的 KeyboardInterrupt 等异常。除非您立即重新引发异常,否则我们将无法捕获异常:

try:
    f = open('file.txt')
    s = f.readline()
    i = int(s.strip())
except IOError as (errno, strerror):
    print "I/O error({0}): {1}".format(errno, strerror)
except ValueError:
    print "Could not convert data to an integer."
except:
    print "Unexpected error:", sys.exc_info()[0]
    raise

如果 file.txt 不在与脚本相同的文件夹中,我们将得到如下输出。

I/O error(2): No such file or directory

相关文章


有用资源