【发布时间】:2013-07-06 13:23:33
【问题描述】:
如何实现异常的默认行为? begin rescue else 不起作用(我认为应该)。
而且,else 在场景中不是毫无意义吗?在没有引发异常时必须运行的任何代码都会在 begin-rescue 块之间运行。
顺便说一下,我有以下解决方法,但我对此并不满意。
class MyException < Exception
end
class YourException < Exception
end
begin
raise MyException if 2 > 50
raise YourException if 1 < 90
rescue Exception => e
case e.message
when /MyException/
puts "MyException Caught"
else
puts "Default Exception Caught"
end
end
【问题讨论】:
-
应该做以下事情:rescue MyException,然后是rescue Exception(不知道为什么我之前没有这样做。:()