asp.net异常处理和错误页配置

 最近做一个项目,直接拷贝了前辈写的程序,结果报错了查了半天都没查出原因,也看不出哪里报错,最后发现有一个错误被try...catch了,所以我们做项目的时候一般不需要try...catch。

假设所有的异常都没有处理那我们可以在global.asax里面处理

  protected void Application_Error(object sender, EventArgs e)
        {

        }

 错误页配置

1、在webconfig里面配置如下:

 <customErrors mode="RemoteOnly" defaultRedirect="~/PageError.htm">
      <error statusCode="403" redirect="NoAccess.htm" />
      <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

  </system.web>

如上代码: mode有3种模式,如果配置为off他将把所有的错误原封不动的暴漏给用户配置为on的时候遇到错误会自动跳到不同的错误页面,最后一个RemoteOnly本地暴漏错误                 远程屏蔽错误显示指定页面。

2、把整个项目的错误记录到日志中

 

  private static ILog logger = LogManager.GetLogger(typeof(Global));

   protected void Application_Error(object sender, EventArgs e)
        {
            string errorMsg = Context.Error.Message + Environment.NewLine + Context.Error.StackTrace + Environment.NewLine + "==========================================================" + Environment.NewLine;
            //1.把错误记录的日志中
          
            logger.Error("网站出现未处理异常", HttpContext.Current.Server.GetLastError());
  Response.Redirect("~/demo.html");//其中demo页面在根目录 }

 

posted @ 2016-10-28 13:23  雅比斯  阅读(671)  评论(0编辑  收藏  举报