Python:带语句和异常处理

时间:2013-11-24 12:28:22

标签: python with-statement

我提供以下代码段, 在代码的最后,我得到空白输出文件

在引发异常时使用上下文文件关闭并在下一次迭代中再次覆盖

with open('output', 'w') as f:
    try:
        for i in range(1, 100):
             if i % 2 == 0:
                 f.write('%d \n' % i)
             else:
                 raise Exception()
    except Exception as e: 
        pass

我的理解是否正确? 如果是这样,为什么会出现这种情况?因为我处理异常。

with语句始终关闭文件是否正确 每当边栏中出现异常时。

使用with声明可能有什么解决方案?

1 个答案:

答案 0 :(得分:2)

使用try / except块时,try块完成后except块不会继续。

一种可能的解决方案是使用raise Exception()语句替换当前引发无意义异常的pass语句。

事实上,您应该对when to use exceptions进行一些阅读。