在Ruby中,除了指定的异常外,是否可以挽救所有异常?
答案 0 :(得分:38)
begin
rescue MyException
raise #to reraise the same exception without changing it
rescue Exception => e
#do something with e
end
答案 1 :(得分:9)
不是这样的。但是如果它是MyException,你可以拯救所有异常并重新引发异常。
答案 2 :(得分:2)
在不了解您的问题的情况下,我建议Ken Bloom回答。
但是,我想更多地了解你为什么要这样做。
你是否担心一个非常严重的例外情况,并不想拯救那个例外,但允许拯救那些不太严重的例外?
在这种情况下,我会将自定义异常继承自Exception
而不是StandardError
,然后
begin
do_risky_stuff
rescue # Not rescue Exception
handle_less_serious_stuff
end