【发布时间】:2012-01-31 03:54:27
【问题描述】:
我不明白为什么这段代码不能正常工作:
def test
raise Exception.new 'error'
end
def caller
begin
test
rescue =>e
puts e.message
end
end
caller
我想在caller方法中捕获测试异常,但是caller方法似乎没有捕获任何东西。
【问题讨论】:
-
fwiw,在方法中执行
begin rescue end时,可以删除begin和end。节省几行代码,即def caller;test;rescue Exception=>e;puts e.message;end -
作为一个风格的东西,你不需要在引发异常时使用
new。raise Exception, 'error'就足够了。