我怕用户访问时页面总出黄色的错误页面不好,我自己又没时间试,只想自动能提交错误然后自己再改

解决方案 »

  1.   

    try后catch到错误,把错误代码存入数据库
    不过这只能解决一部分错误,有一些不可预知的错误是不能解决的
      

  2.   

    用try太浪费资源了。不符合asp.net优化的原则。
    应该使用
    Page_Error事件。
    在事件里写上
                Dim errMsg As String
                '得到系统上一个异常
                Dim currentError As Exception = Server.GetLastError()            errMsg += "<table width=100% border=0 align=left><tr><td width=15% rowspan=3 align=right><img src=Images/warning.gif width=107 height=39></td><td width=85%><h1>页面错误</h1><hr/></td></tr><tr><td>此页面发现一个意外错误,对此我们非常抱歉。" & "此错误消息已通知了系统管理员,请及时联系我们,我们会及时解决此问题! <br/>" & "错误发生位置: " & Request.Url.ToString() & "<br/>" & "错误消息: " & currentError.Message.ToString() & "<hr/></td></tr><tr><td>" & "<b>Stack Trace:</b><br/>" & currentError.ToString()
                errMsg += "</td></tr></table>"
                Response.Write(errMsg)
                '清除异常
                Server.ClearError()
            End Sub
      

  3.   

    global.asax.csApplication_Error 里Server.GetLastError().GetBaseException()
      

  4.   

    找到根目录下的global.asax.cs,将其Application_Error小节修改如下:protected void Application_Error(Object sender, EventArgs e)
    {
       Exception errorInfo=Server.GetLastError().InnerException ;
       string strMessage=errorInfo.Message;    //错误信息
       string strPageUrl=Request.Path;                    //产生错误的页面所在的路径
       Server.ClearError();                               //清除错误,这样就不会有黄色的窗口弹出
       saveErr(strMessage,strPageUrl);                    //错误处理方法,用于存储错误信息,自己编写.
       Response.Redirect("error.aspx?mes="+strMessage+"&rul="+strPageUrl,true); //转到错误显示页面,error.aspx要自己设计
       
    }已知的错误在代码中用以下代码弹出:    throw new Exception("出错!......");
      

  5.   

    不想出现黄页面可以在web.config里面设置自定错误页。
    捕获异常可以监听Error事件,但是try也是一种方案,并不会影响效率,作为ASP.NET,优化是应该尽量避免异常,不使用异常传递数据和改变流程……。