ErrorForm - aspx-страница, которая показывает необработанное исключение, она вызывается в Global.asax.
WebErrorBoxRiser - контрол, который используется для показа исключения.
Отображение исключения
Для того чтобы показать красивое окно с обработанным исключением нужно вызывать метод WebErrorBox.Rise(exception, showDetails, errorCaption).
Пример:
try
{
// Делаем что-нибудь небезопасное.
}
catch (Exception ex)
{
WebErrorBoxRiser.Rise(ex, false, "Произошла ошибка при обработке формы");
}
Отображение ErrorForm
ErrorForm отображается, когда происходит необработанное исключение. На ней показывается случившееся исключение.
Page_Load страницы обработано исключение при помощи WebErrorBoxRiser, но после этого будут вызываться Page_Load контролы, которые, в свою очередь, создадут исключительную ситуацию. Таким образом, окно с ошибкой не появится, а появится ErrorForm, которая отобразит и исключение из контрола и то исключение, которое обработано в WebErrorBoxRiser.Отображение WebErrorBoxRiser
При вызове метода
WebErrorBoxRiser.Rise(exception, showDetails, errorCaption)
исключение добавляется в
HttpContext.Current.Items[WebParamController.PageFilter_WebErrorBoxExceptions]
Затем, при помощи ICSSoft.STORMNET.Web.HttpModules.ResponseFilterModule, вызывается Render у WebErrorBoxRiser, который генерирует Html и отображает на страницу.
Для того чтобы получить все исключения, которые были добавлены при помощи WebErrorBoxRiser следует воспользоваться
(List<WebErrorBoxRiser>) HttpContext.Current.Items[WebParamController.PageFilter_WebErrorBoxExceptions];
Показ дополонительной информации об исключении
Для того чтобы увидеть StackTrace на странице следует добавить в web.config в <appSettings>
<add key="ShowErrorDetails" value="true" />