Я ищу что-то вроде этого:
raise Exception rescue nil
Но самый короткий путь, который я нашел, это:
begin raise Exception rescue Exception end
Это обеспечивается ActiveSupport:
suppress(Exception) do # dangerous code here end
http://api.rubyonrails.org/classes/Kernel.html#method-i-suppress
def ignore_exception begin yield rescue Exception end end
Теперь напишите свой код как
ignore_exception { puts "Ignoring Exception"; raise Exception; puts "This is Ignored" }
Просто заключите левую часть в круглые скобки:
(raise RuntimeError, "foo") rescue 'yahoo'
Обратите внимание, что спасение произойдет только в том случае, если исключение составляет StandardError или его подкласс.См. http://ruby.runpaint.org/exceptions для получения дополнительной информации.