У меня проблема с улавливанием исключений и ошибок при вызове Proc object
. Смотрите мой код:Ruby - Proc.call - исключение для ловли
def method1
.. do something ...
end
def method2
.. do something ...
end
def run_method_safely(proc_obj)
begin
proc_obj.call
rescue => e
puts "Error man!"
... do something ...
end
end
У меня есть несколько методов (здесь я только method1, method2
, но в коде у меня есть гораздо больше методов), которые выполняются методом run_method_safely
. Я делаю это так, потому что я не хочу, чтобы каждый метод был в блоке start-rescue, поэтому я написал метод, который позаботится об этом. См:
.
run_method_safely(Proc.new { method1 })
run_method_safely(Proc.new { method2 })
.
Проблема заключается в том, когда proc_obj.call
выполняется с ошибкой (метод отсутствует, WebDriver - такой элемент не найден, или любой другой) спасательное блок не выполняется, программа работает как ничего не произошло.
Кто-нибудь знает, как поймать ошибки и исключения из кода Proc?
Можете ли вы создать управляемый образец, который воспроизводит это? –