1. 使用Error 事件
1.1 页面级的Error处理
通过Page_Error函数,我们可以对页面中发生的未处理异常进行处理。
1.2 应用程序级的Error 处理
通过Global.asax 中 Application _Error 函数,我们可以对整个应用程序中未处理的异常进行处理。
1.3 Tips
1.3.1 我们可以通过Server.GetLastError 方法得到未处理的异常 。 注意:在Application_Error 中,Server.GetLastError 方法返回的是一个UnHandledExpection,我通过UnHandledException 的InnerExpection属性来得到真正发生的异常。
1.3.2 当处理完异常之后,需要调用Server.ClearError 来清除异常。否则,异常会继续传递下去。
2.使用Error 页
2.1 应用程序级的 Error 页
比如:
<customErrors mode="on" defaultRedirect="ErrorDefault.aspx">
<error statuscode="401" redirect="ErrorUnauthorized.aspx"/>
</customErrors>
上面的配置文件指定,当发生错误,且状态码为401时,将用户重定向到ErrorUnauthorized.aspx 页。其他错误则重定向到ErrorDefault.aspx 页
当我们在本机上调试程序的时候,应将 mode属性设为 on ,那样的话我们才可以看到错误页。mode 设置为remoteOnly 时,只有远程用户能看到错误页,而本机则看不到。
2.2 页面级的 Error 页
通过使用Page的 ErrorPage属性,我们可以为页面指定一个错误页 。 比如 <@Page ErrorPage="DefaultError.aspx"/>
3.使用 Trace
3.1 应用程序级的 Trace
比如:
<trace enable="true" requestLimit="20" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
上面的配置文件指定,将前20个请求写入Trace.axd 文件,且按照时间排序。
将pageOutput 设为false ,Asp.net 将trace 信息写入Trace.axd 文件。否则则显示在每个页面上。
3.2 页面级的 Trace
可以通过 页面上的 Trace属性来打开,关闭此页面上的Trace
比如: <@Page Trace="true"/>
注意:在配置文件指定将Trace 信息写入Trace.axd 不会影响页面级的设定。即当页面的 Trace属性设为 true的时候,所有的trace 信息将输出在此页面上。解决方法为: 在配置文件中将pageOutput 设为false ,将不需要跟踪的页面的Trace 设为false
3.3 输入信息
可以使用Trace 类的 Write和Warn 方法将信息写入 Trace流中。