按钮点击操作代码如下
protected void btnHandled_Click(object sender
EventArgs e)
{
try
{
throw new Exception(Sample Exception);
}
catch (Exception ex)
{
// Log the error to a text file in the Error folder
ErrHandlerWriteError(exMessage);
}
}
现在运行程序并点击按钮因为我们已经在代码中处理了错误和记录下了异常你会发现当点击按钮时似乎什么也没发生关闭程序刷新Error文件夹你会看到有个以今天日期为文件名的新文件被创建异常已经被成功记录下如下所示其中日期和时间在您的机器上会有所不同
Log Entry :
// ::
Error in:http://localhost:/ErrorHandling/Defaultaspx Error Message:Sample Exception
__________________________
Redirecting users on unhandled errors(在未有处理错误情况下重定向用户)
让我们看看如何在Application级上来捕捉未有错误处理而发生的错误并将用户定向到一个不同的页面
要捕捉到未有错误处理的错误只需做以下的工作即可添加一个 Globalasax 文件(右键工程项目 > Add New Item > Glabalasax)在当中的 Application_Error() 方法中增加以下代码
void Application_Error(object sender EventArgs e)
{
// Code that runs when an unhandled error occurs
Exception objErr = ServerGetLastError()GetBaseException();
string err = Error in: + RequestUrlToString() +
Error Message: + objErrMessageToString();
// Log the error
ErrHandlerWriteError(err);
}
我们注意到通过使用 ServerGetLastError() 函数来捕捉错误当一个未有错误处理的错误发生时要将用户重定向到不同的页面我们要做的是打开你的 Webconfig 文件并定位到 <customErrors> 标签处并注销它在移除注释后标签看来应该是这样的
<!
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request Specifically
it enables developers to configure html error pages
to be displayed in place of a error stack trace >
<customErrorsmode=RemoteOnlydefaultRedirect=GenericErrorPagehtm>
<errorstatusCode=redirect=NoAccesshtm />
<errorstatusCode=redirect=FileNotFoundhtm />
</customErrors>
[] [] []