Ruby拯救除MyException之外的所有异常

时间:2011-01-25 17:06:33

标签: ruby exception-handling

在Ruby中,除了指定的异常外,是否可以挽救所有异常?

3 个答案:

答案 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