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后,原来的异常信息就丢失了,并且不能重新引发。

posted on 2015-09-14 15:04  sudo987  阅读(165)  评论(0编辑  收藏  举报

导航