Вопрос

Вопросы говорят все, возьмем этот пример кода:

<ul id="css-id">
    <li>
    <something:CustomControl ID="SomeThingElse" runat="server" />
    <something:OtherCustomControl runat="server" />
    </li>
</ul>

Теперь, если где-то внутри этих элементов управления (которые расположены на главной странице) возникнет ошибка, они отключат весь сайт, как можно отловить эти исключения?

Это было полезно?

Решение

Вы можете перехватить все исключения, не обработанные где-либо еще на странице/классе Global.asax.Посмотри на:

protected void Application_Error(Object sender, EventArgs e)

метод.

Другие советы

К сожалению, необработанное исключение всегда приведет к ошибке на вашем сайте.Однако вы можете предотвратить это несколькими способами.

  • Используйте этот раздел в вашем web.config, чтобы показать удобное для пользователя сообщение.
  • В вашем Global.asax - или пользовательском обработчике - перехватите необработанное исключение и отреагируйте соответствующим образом - так

лучшее решение

  • Убедитесь, что ваши элементы управления не выдают необработанные исключения!

Добавьте global.asax и реализуйте обработчик Application_Error.Используйте функцию Server.GetLastError(), чтобы получить дескриптор выброшенного исключения.

Используя метод global.asax Application_Error, как описано в Как создать собственные страницы отчетов об ошибках в ASP.NET с помощью Visual C# .NET.

Альтернативным подходом может быть использование HTTP-модуль;это дает вам больше гибкости (например, вы можете обрабатывать ошибки из нескольких приложений).

Хотите перехватить исключение и обработать его?

Или вы хотите предотвратить Желтый Экран Смерти?Если вы пытаетесь предотвратить Желтый Экран Смерти, обратите внимание на то, как справиться с Error мероприятие на HttpApplication (другими словами, в вашем Global.asax).

Дополнительные сведения см. на следующей странице MSDN:http://msdn.microsoft.com/en-us/library/system.web.httpapplication.error.aspx

Конкретно этот абзац:

Доступ к исключению, вызывающему событие Error, можно получить путем вызова метода GetLastError.Если ваше приложение генерирует собственный вывод ошибок, подавите сообщение об ошибке по умолчанию, создаваемое ASP.NET путем вызова метода ClearError.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top