【发布时间】:2015-10-09 14:00:56
【问题描述】:
我有一个函数:
def g
''.each_line.next
end
由于each_line 在空字符串上返回一个行迭代器,next 引发异常StopIteration: iteration reached an end。
除此之外,我还有另一个功能:
def f
catch :aSymbol do
loop do
g
end
end
end
catch 将捕获符号 :aSymbol 如果它被抛出某个地方,但情况并非如此,所以这个函数应该引发相同的异常。但是,调用f 不会这样做;它的行为就像catch 也会默默地拯救异常。这是预期的行为吗?
【问题讨论】: