Эта строка состояния спасает код в блоке begin-rescue всякий раз, когда выдается исключение с типом Exception
.Просто так получается, что Exception - это исключение верхнего уровня, от которого наследуются все остальные исключения (такие как синтаксическая ошибка, ошибка метода и т. Д.).Из-за этого все исключения будут спасены.Затем он сохраняет этот экземпляр исключительной ситуации в переменной ex
, в которой вы можете посмотреть далее (например, обратная трассировка, сообщение и т. Д.)..
Примером может быть такой:
begin
hey "hi"
rescue Exception => ex
puts ex.message
end
#=> Prints undefined method `hey' for main:Object
Однако, если код в блоке begin не дает ошибок, он не будет переходить в ветвь восстановления.