如何编写捕获所有Python异常的try / except块?
这是一条通用的经验法则,尽管您可以使用以下代码捕获所有异常,但您不应:
try: #do_something() except: print "异常捕获!"
但是,这也将捕获我们可能不感兴趣的异常,例如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 "无法将数据转换为整数。" except: print "意外错误:", sys.exc_info()[0] raise
如果file.txt在与脚本相同的文件夹中不可用,我们将获得以下输出。
I/O error(2): No such file or directory