(Я фактически использую Ektron CMS и использую Widgets
, которые являются очень простым расширением пользовательского элемента управления).Ловля необработанных исключений в веб-управлении, чтобы страница отображалась
Проблема: У меня есть веб-страница, содержащая множество виджетов. Если в одном из этих виджетов возникает исключение, страница останавливается, и пользователю предоставляется ошибка сервера. Я хотел бы иметь необработанные исключения в виджетах для регистрации исключения, прекратить отображение этого виджета и разрешить продолжение страницы.
E.g. У вас есть виджет погоды на каждой странице, которая получает данные через веб-службу. Если веб-служба отправляет вам неправильный XML, вы хотите, чтобы сайт по-прежнему был доступен.
Возможные решения:
План A) Внутри каждого виджета, заверните содержимое инициализации или отображения функции в Try-Catch заявления.
Plan B) Создайте новый интерфейс IRobustWidget, который расширяет IWidget и выполняет Try-Catch.
Оба эти параметра кажутся мне немного «грязными», поскольку я читал, что общие операторы catch (exception)
являются немного анти-шаблонами. Я склоняюсь к Плану Б, поскольку это кажется более модульным.
- Я пропустил какие-либо другие варианты?
- Является ли общий Try-Catch ok в этом отношении?
(I've also logged this at the Ektron forums)
Спасибо, я не считал это. Это соответствует моему решению сделать сами элементы управления более ответственными за обработку ошибок. Я отхожу от попытки показать страницу «независимо от того, что», поскольку на данном этапе в нашем проекте это слишком много усилий. – Spongeboy