Обработка исключений в Ruby в блоке else
Итак, у меня есть классическая обработка исключений ruby:
begin
# do work here
rescue SafeShutdown => e
# prevent loss of data and safely shutdown
rescue SystemExit => e
# print #{e} and continue
else
# how can I get #{e} here to get error message
# so I can behave like in previous rescue
#
# print #{e} and continue
end
Мой вопрос заключается в том, как я могу получить "е" распечатать в регистраторе в другой части блока.
1 ответ
Решение
В begin rescue
блок else
вызывается только тогда, когда не возникает исключение, т.е. не было выдано никакой ошибки. Попробуй это:
begin
# do work here
rescue SafeShutdown => e
# print e
rescue SystemExit => e
# print e
else
# this will only run when no exceptions are thrown
ensure
# this will always run
end