asp.net中自定義錯誤處理頁面
兩種方法均為全站出錯處理
方法一:
1、新增Web.config, <system.web></system.web>中新增<customErrors mode="On"
defaultRedirect="ApplicationErroy.aspx" ></customErrors>節點,
2、新增錯誤處理頁面:ApplicationErroy.aspx呼叫下面的方法:
private void DealErroy()
{
HttpException erroy = new HttpException();
string strCode = erroy.ErrorCode.ToString();
string strMsg = erroy.Message;
erroy.HelpLink = "sss";
Response.Write("ErrorCode:" + strCode + "<br>");
Response.Write("Message:" + strMsg + "<br>");
Response.Write("HelpLink:" + erroy.HelpLink + "<br>");
Response.Write("Source:" + erroy.Source + "<br>");
Response.Write("TargetSite:" + erroy.TargetSite + "<br>");
Response.Write("InnerException:" + erroy.InnerException + "<br>");
Response.Write("StackTrace:" + erroy.StackTrace + "<br>");
Response.Write("GetHtmlErrorMessage:" + erroy.GetHtmlErrorMessage() + "<br>");
Response.Write("erroy.GetHttpCode().ToString():" + erroy.GetHttpCode().ToString() +
"<br>");
Response.Write("erroy.Data.ToString()::" + erroy.Data.ToString() + "<br>");
}
這種方法不能完整地顯示錯誤資訊;
方法二:
1、新增Web.config, <system.web></system.web>中新增<customErrors mode="On"
defaultRedirect="ApplicationErroy.aspx" ></customErrors>節點,
2、新增Global.asax檔案,找到Application_Error事件,加入以下程式碼:
Exception erroy = Server.GetLastError();
string err = "出錯頁面是:" + Request.Url.ToString() + "<br>";
err += "異常資訊:" + erroy.Message + "<br>";
err += "Source:" + erroy.Source + "<br>";
err += "StackTrace:" + erroy.StackTrace + "<br>";
Server.ClearError();
Application["erroy"] = err;
2、新增錯誤處理頁面:ApplicationErroy.aspx 加入以下程式碼;
Response.Write(Application["erroy"].ToString());
這種方法能完整地顯示錯誤資訊,
最好的辦辦法還是兩種方法一起用最好!
另:web.config中也可以把
<error statusCode="403" redirect="NoAccess.htm" />//訪問被禁止
<error statusCode="404" redirect="FileNotFound.htm" />//找不到頁面
新增進去
http錯誤程式碼含義:
"100" : Continue
"101" : witching Protocols
"200" : OK
"201" : Created
"202" : Accepted
"203" : Non-Authoritative Information
"204" : No Content
"205" : Reset Content
"206" : Partial Content
"300" : Multiple Choices
"301" : Moved Permanently
"302" : Found
"303" : See Other
"304" : Not Modified
"305" : Use Proxy
"307" : Temporary Redirect
"400" : Bad Request
"401" : Unauthorized
"402" : Payment Required
"403" : Forbidden
"404" : Not Found
"405" : Method Not Allowed
"406" : Not Acceptable
"407" : Proxy Authentication Required
"408" : Request Time-out
"409" : Conflict
"410" : Gone
"411" : Length Required
"412" : Precondition Failed
"413" : Request Entity Too Large
"414" : Request-URI Too Large
"415" : Unsupported Media Type
"416" : Requested range not satisfiable
"417" : Expectation Failed
"500" : Internal Server Error
"501" : Not Implemented
"502" : Bad Gateway
"503" : Service Unavailable
"504" : Gateway Time-out
"505" : HTTP Version not supported