Вместо того, чтобы вручную регистрировать ошибку с помощью класса ErrorSignal
в Elmah, вместо этого вы должны стремиться к тому, чтобы ELMAH регистрировал для вас ошибки автоматически, что происходит при возникновении события приложения Error
.
В вашем примере естьсерьезная проблема с Main Program .А именно, глотает исключения , по крайней мере, для конечного пользователя.Да, исключение - регистрация в ELMAH, но вы скрываете ошибку от пользователя.Конечный пользователь будет думать, что ее отправка формы (или что-то еще) прошла без ошибок, когда на самом деле возникла серьезная проблема.
Короче говоря, блоки try...catch
следует использовать только экономно, например, в случаях, когдавы можете исправить ошибку, или если она является «незначительной» и не должна останавливать рабочий процесс.Но большинство ошибок - реальные ограничители показа и не имеют изящного обходного пути.Для этого большинства вы бы хотели, чтобы ошибка распространялась вплоть до среды выполнения ASP.NET, где ELMAH автоматически регистрирует ее и где пользователь увидит страницу с ошибкой, предупредив их о том, что произошла ошибка.
Ознакомьтесь с этой моей статьей: Рекомендации по обработке исключений для веб-приложений ASP.NET .