Вы можете попытаться контролировать ProcessRequest. Вам нужно проверить его, чтобы узнать, сможет ли он выполнить ту работу, о которой вы просили, но это хороший момент, чтобы зафиксировать все ошибки вашей страницы.
public override void ProcessRequest(HttpContext context)
{
try
{
base.ProcessRequest(context);
}
catch (Exception x)
{
// handle here your error from the page...
}
}
Еще несколько заметок
Я использовал этот код на одной критической странице, но я не использую его для всей своей страницы. Даже если вы можете зафиксировать ошибки, иногда вы не можете ничего сделать здесь, кроме как снова выдать окончательную ошибку, так что в итоге лучше регистрировать ваши неизвестные и необработанные ошибки из globa.asax
Application_Error
, и на странице убедитесь, что что вы используете try/catch
для обработки их там, где они происходят.
После некоторых размышлений, может быть, это не очень хорошая практика, чтобы использовать его. Хорошей практикой является использование try / catch в месте, где у вас могут быть броски, а не в общем случае.
Последний
Вы также получаете здесь ошибку throw, когда пользователь закрывает соединение до конца рендеринга, но если вы регистрируете ошибки, вы получаете то же самое на Application_Error - это не ошибка страницы.
Exception of type 'System.Web.HttpUnhandledException' was thrown. --->
System.Web.HttpException: The remote host closed the connection.
The error code is 0x80072746.