VS2013中的PTVS:为什么这个for循环没有捕获StopIteration?

时间:2014-06-12 06:39:09

标签: python python-3.x visual-studio-2013 ptvs

我在VS2013中使用PTVS和Python 3.4.1。

以下代码尝试读取文件末尾并在VS2013中抛出StopIteration异常。它在Python解释器中运行良好。

source.csv是一个简单的csv文件,保存为Excel 2013中的csv。

csvreader.py:

import csv

with open(r"c:\data\source.csv", "r") as reader:
    csvreader = csv.DictReader(f=reader, dialect = 'excel')
    for row in csvreader:
        print(row)

source.csv:

Col1,Col2,Col3
a1,a2,a3
b1,b2,b3

1 个答案:

答案 0 :(得分:3)

StopIteration无论如何都会在那里被提升,只是VS实际上向你显示了它被引发的点。它并不意味着异常未得到处理 - 如果你继续从那一点开始运行,你会发现它的工作方式完全一样。

现在,默认情况下它不应该报告此异常(Debug中的默认设置 - > Exceptions报告未处理,因此只有在它实际未处理时才应报告)。如果您正在使用PTVS 2.0,则很可能您正在点击this bug。我建议切换到2.1 beta,这可以解决这个问题。