小编Tim*_*imO的帖子

finally块中的break语句吞下异常

考虑:

def raiseMe( text="Test error" ):
    raise Exception( text )

def break_in_finally_test():
    for i in range(5):
        if i==2:
            try:
                raiseMe()
            except:
                raise
            else:
                print "succeeded!"
            finally:
                print "testing this!"
                break

if __name__=='__main__':
    break_in_finally_test()
Run Code Online (Sandbox Code Playgroud)

我希望看到Exception( "Test error" )被提升,但只打印"测试这个".当然,目的是raiseMe()只召唤一次,无论我们是否成功 - 但如果它引起异常,我本来想看到它!

为什么break会吞下我明确提出的异常?

python

21
推荐指数
2
解决办法
2883
查看次数

标签 统计

python ×1