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