这是一条通用的经验法则,尽管您可以使用以下代码捕获所有异常,但您不应:
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