我有一个功能:
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
也会默默地拯救这个例外。这是预期的行为吗?