Как действительно делают Ваши сценарии Ruby устойчивыми с надлежащей обработкой исключений

Я не спрашиваю о том, как использовать начинание.. спасательный оператор в Ruby. Скорее я спрашиваю, как делают Вы выясняете то, о чем стоит вызвать беспокойство. Я знаю, что некоторые жесткие люди, вероятно, проходят документацию/код, чтобы найти каждую возможную ошибку и иметь код, который обрабатывает все случаи корректно. Но это могло бы заходить слишком далеко, если Вы не пишете что-то "важнейшее".

Таким образом, как Вы знаете что ошибки высматривать? Я обычно просто выполняю свой код, и если он останавливается из-за ошибки, я добавляю начинание.. спасательный оператор. Я уверен, что должен быть лучший путь все же. Я просто запустил скрипт для импорта данных в базу данных для некоторых файлов, и они остановились после часа (много файлов, не спрашивайте), из-за некоторой ошибки, которую я не мог знать, собирался произойти. Довольно раздражающий, и я уверен, что это - мой отказ для того, чтобы не написать больше устойчивого кода. Как я делаю это?

1
задан ehsanul 21 July 2010 в 03:56
поделиться

1 ответ

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

Однако я думаю, что вы могли бы поспешить написать свои собственные обработчики ошибок. Для производственного кода, очевидно, существуют определенные сценарии, которые вы хотите легко отловить и показать хорошее сообщение об ошибке (например, слишком много подключений к базе данных), но иногда разрешение ошибки всплывать - это, по сути, самая надежная вещь. сценарий может сделать. Если что-то не так с моей настройкой rubygems, из-за чего ваш драгоценный камень срыгивает ошибки, я не хочу, чтобы вы скрывали их за «что-то пошло не так!»; Я бы предпочел увидеть саму ошибку, чтобы приступить к работе.

Выявите действительно важные ошибки, с которыми вы можете что-то сделать, например, несколько раз попытаться установить HTTP-соединение, прежде чем отказаться от него. Однако, помимо этого, если вы ничего не можете поделать с ошибкой, нет ничего постыдного в том, чтобы позволить ей всплыть.

2
ответ дан 2 September 2019 в 22:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: