Я пытаюсь найти лучший способ поймать определенную ошибку и сообщение об ошибке в Ruby on Rails. Моим вариантом использования является то, что время от времени я сталкиваюсь с ошибкой таймаута, которая генерируется с общей ошибкой, и я хочу рассматривать ошибку тайм-аута иначе, чем другие ошибки в рамках одной и той же общей ошибки. Я не уверен, что другие ошибки могут быть вызваны общей ошибкой, но я предполагаю, что их больше. У меня есть пример кода ниже, как я сейчас обрабатываю его, но я думал, что может быть лучший способ, которого я еще не нашел?Ruby on Rails Обработка ошибок, ошибка регистрации и сообщение
tries = 0
begin
tries += 1
<code>
rescue Foo::Bar => e
case e.to_s
when 'More specific timeout error message'
retry unless tries >= 5
else
# Let me see other error messages
log.info("Error: #{e.to_s}")
end
end
Вы уверены, что тайм-аут поднимается с использованием класса исключения общего назначения вместо его собственного класса, такого как Timeout :: Error? –
Да, поэтому ошибка исходит из внешней библиотеки, время от времени время от времени и возвращает общую ошибку внешних библиотек с сообщением о тайм-ауте. – CarlyL