通知与日志

一般来说 如果我们页面发生错误 异常的时候 需要对应合适的处理方式 并且 分别把 用户曾经出现的错误写入日志 以备查看。

 首先我们用一个按钮 来模拟抛出异常,然后去捕捉他,处理他并友好的展示在客户端

 1     protected void Button1_Click(object sender, EventArgs e)
 2     {
 3         throw new Exception();
 4     }
 5     void Page_Error(object sender, EventArgs e)
 6     {
 7         string msg = Server.GetLastError().ToString();
 8         Response.Write(msg);
 9         Server.ClearError();
10     }

 

 单击按钮的时候 就显示大堆的服务器错误信息。这里必要介绍一下 Page_Error方法。 是继承父类的方法。

当页面上发生错误,抛出异常没被处理的话就会引发该方法。 把错误信息取出来放进字符串并显示在页面上,之后要Server.ClearError() 

否则异常依旧是一大堆服务器错误信息。因为错误没有被清理。 

也可以在Page_Error中清理异常 ,调转错误提示页面。加上个response.Redirct就可以了

也可以在配置文件中配置出现指定错误 设置要跳转的页面

1 <configuration>
2     <system.web>
3         <compilation debug="true" targetFramework="4.0"/>
4     <customErrors defaultRedirect="error2.aspx" mode="On">
5       <error statusCode="404" redirect="error1.aspx"/>
6     </customErrors>
7     </system.web>
8 </configuration>

这里customerrors 里面默认调转页面一定要设置,并且mode为on,页面中特定错误可以定义特定连接 否则均跳到默认连接中。

 

 

最后介绍一下如何把错误信息写入日志。

上面讲到page_error方法。 如果错误为得当处理,可以在里面把他写入日志

 1   void Page_Error(object sender, EventArgs e)
 2     {
 3      6 
 7         string name = "ak";
 8         string source = "aksources";
 9         if (!EventLog.Exists(name))
10         {
11             EventLog.CreateEventSource(source, name);
12         }
13         EventLog log = new EventLog(name);
14         string msg = Server.GetLastError().ToString();
15         log.Source = source;
16         log.WriteEntry(msg, EventLogEntryType.Error);
17     }

 

 

 

 

 

 

 

posted @ 2012-04-14 15:05  akak123  阅读(815)  评论(0)    收藏  举报