我怎样编写一个同时捕获所有 Python 异常的 try/except 块?


尽管你可以使用以下代码捕获所有异常,但一般经验法则建议不要这样做。

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

更新于: 2019 年 9 月 27 日

162 次浏览

职业起飞

完成课程即可获得认证

开始
广告
© . All rights reserved.