try...except包含try...finally方法

def f():
        try:
                try:
                        f = open(raw_input('>'))
                        print f.readlines()
                finally:
                        f.close()
                        #1/0
        except Exception, e:
                print str(e)

可以用上面的方法处理异常发生后文件的关闭,这样做有个问题,如果finally字句出现异常,比如,ZeroDivisionError这种的,就会覆盖在上面try块里面的异常信息,这是我们不想看见的,再比如,finally里面出现return、break、continue后,原来的异常信息就丢失了,并且不能重新引发。

原文地址:https://www.cnblogs.com/iNeoWong/p/4807187.html