Какой самый короткий способ игнорировать исключение Ruby - PullRequest
23 голосов
/ 23 февраля 2011

Я ищу что-то вроде этого:

raise Exception rescue nil

Но самый короткий путь, который я нашел, это:

begin
  raise Exception
rescue Exception
end

Ответы [ 3 ]

27 голосов
/ 01 октября 2013

Это обеспечивается ActiveSupport:

suppress(Exception) do
   # dangerous code here
end

http://api.rubyonrails.org/classes/Kernel.html#method-i-suppress

26 голосов
/ 23 февраля 2011
def ignore_exception
   begin
     yield  
   rescue Exception
   end
end

Теперь напишите свой код как

ignore_exception { puts "Ignoring Exception"; raise Exception; puts "This is Ignored" }
9 голосов
/ 20 октября 2012

Просто заключите левую часть в круглые скобки:

(raise RuntimeError, "foo") rescue 'yahoo'

Обратите внимание, что спасение произойдет только в том случае, если исключение составляет StandardError или его подкласс.См. http://ruby.runpaint.org/exceptions для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...