Вы действительно обрабатываете исключения в DAL (т. Е. Ведете журнал, пытаетесь это исправить и т. Д.)? Если нет, то попытка catch не имеет смысла, кроме циклов вращения. То же самое относится и к событиям щелчка, но это не плохая практика обработки ошибок в пользовательском интерфейсе, даже если вы по-настоящему ничего с ними не делаете, так как вы будете перенаправлять пользователя со страницы ужасной ошибки на собственное дружеское сообщение .
Одна страница ошибки работает нормально, если вы действительно не можете обработать выброшенное исключение. Положительным моментом является время выхода на рынок, так как вы пишете ценный маленький код, чтобы не показывать пользователю ужасное сообщение. Недостатком является то, что пользователь пропускает контекст. Я не особо разбираюсь в одном размере, подходящем для всех обработчиков исключений, кроме как для резервного копирования (есть ошибка, которую я не предвидел, которая прошла мимо моего обработчика первой строки).
Существует вариант страницы с общей ошибкой, если вы работаете с HTTP-статусами и используете config.
Другой шаблон - настроить собственную базовую страницу и заставить ее работать как обработчик ошибок. Затем вы можете выделить контейнер для заполнения при возникновении ошибки. Этот подход хорошо работает для добавления контекста, так как пользователь все еще видит часть страницы, на которой он был, но вы дали сообщение об ошибке, поэтому он знает, что что-то не получилось. Я видел этот шаблон, используемый с пользовательским элементом управления, который добавляется в контейнер при возникновении ошибки, но он немного более сложен, так как вам нужно настроить таблицу кодов и соответствующие сообщения для отображения (которые могут содержать ошибки и само по себе).