Альтернатива "Спасению Исключений"

Иногда я получаю неожиданные ошибки, такие как ошибки тайм-аута, ошибки 503 и т. Д. Есть ошибки, о которых я даже не знаю, которые я могу получить. Я не могу объяснить их всех, делая что-то вроде:

rescue Timeout::Error => e

Это также ужасная идея, чтобы спасти Exception,

Какую альтернативу я мог бы использовать? Я хочу, чтобы мой код спас их всех при возникновении ошибки; если нет ошибки, мне нужно ее избежать. Я хочу иметь возможность убить мой скрипт, но не пропустить синтаксические ошибки и т. Д.

1 ответ

Решение

Вы можете спасти для StandardErrorИли просто спасение, которые одинаковы:

rescue StandardError => e
# or
rescue => e

В следующей таблице вы можете увидеть, какие исключения были спасены из StandardError - Обратите внимание, что они являются подмножеством из Exceptionи, в принципе, должны быть ошибки, которые можно подловить.

Конечно, у вас могут быть драгоценные камни, которые определяют исключение в неправильном месте, но это не должно происходить в хорошо развитых драгоценных камнях.

http://rubylearning.com/images/exception.jpg

Лично мне нравится спасать только те исключения, которые я знаю, как обрабатывать, за исключением случаев, когда это необходимо добавить в систему log/backtrace для последующего просмотра ошибок. Если это так, я обычно спасаю StandardError

Другие вопросы по тегам