Вы можете попробовать управлять 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.
person
Aristos
schedule
08.02.2012