2016-06-21 4 views
1

Есть ли способ получить доступ к сообщению об ошибке в блоке спасения в виде строки? Например:Доступ к сообщениям об ошибках в блоке спасения

def foo 
    raise RuntimeError, "This is an error" 
end 

def bar 
    begin 
    foo 
    rescue RuntimeError 
    puts "Rescued" 
    end 
end 

bar 

Есть ли способ, чтобы получить доступ к "This is an error" из с-в спасательном блоке? Что-то вроде этого:

... 
rescue RuntimeError 
    puts <error-message> 
end 
... 

ответ

3

Вы должны указать переменную для хранения ошибки в

def foo 
    raise RuntimeError, "This is an error" 
end 

def bar 
    begin 
    foo 
    rescue RuntimeError => ex 
    puts "Rescued #{ex.message}" 
    end 
end 
+0

Вы также можете использовать '' $ глобальной внутри спасательного блока, чтобы получить объект исключения!. – zetetic

Смежные вопросы