Исключение в одном модуле DNN предотвращает обработку всех остальных модулей на странице - PullRequest
3 голосов
/ 30 января 2012

У меня очень общая проблема на веб-сайте DNN 6.0, над которым я работаю: неупорядоченное исключение в одном модуле DNN влияет на обработку всех остальных модулей на странице. Пример:

Допустим, у меня есть страница DNN с двумя модулями. В Module1 есть кнопка, которая обработчиком события onclick выдает исключение. Модуль 2 содержит только текст метки.

Таким образом, когда пользователь нажимает кнопку Module1.bithton, вместо Module1 появляется ошибка, а Module2 не отображается.

Можно ли перехватить все такие исключения Module1 в одном месте и позволить DNN обрабатывать другие модули на странице? (Я знаю, что самый простой / простой способ - написать блок try / catch в button.onclick, но я не могу реализовать такой подход во всех модулях, которые мы создали, потому что это займет много времени.)

1 Ответ

5 голосов
/ 30 января 2012

Вы предложили правильный ответ.

Реализация блоков try / catch и использование следующих функций

  • LogException () - регистрирует ошибку, не останавливаетзагрузка модуля
  • ProcessModuleLoadException () - регистрирует ошибку, останавливает загрузку модуля

Пример кода для этого:

try
{
    //BLAH
}
catch (Exception exc) //Module failed to load
{
    Exceptions.ProcessModuleLoadException(this, exc);
}
...