为你的网站定制一套统一的异常处理机制
_Error(object sender, System.EventArgs e) { Exception currentError = Server.GetLastError(); if (currentError == null) { return; } LogError(currentError); // 把错误信息写到你的日志列表里面,也可以同时给系统管理员发送一封邮件。 string friendlyMsg = "你的友好错误提示"; #if DEBUG // 如果程序处于Debug状态,则直接在页面显示具体错误信息,便于调试 friendlyMsg = currentError.Message + “<br />Stack: ” + currentError. StackTrace; #endif // 下面的信息是显示给用户的友好提示信息 Response.Write(friendlyMsg); // 你也可以重定向到某个错误提示页面。这里要小心一点的是,确保你的错误提示页面绝对不要有个Bug,否则可能会形成死循环。所以,错误提示页面最好就是一张完全静态的HTML页面。 Server.ClearError(); } 上面的异常处理方法主要干了两件事情:第一,记录详细的出错信息,包括错误描述,时间,发生的程序集,堆栈跟踪,甚至当前使用网页的用户信息,IP地址等信息。同时给管理员发送邮件。第二,给用户显示一个非常友好的错误提示信息,让用户心里好受些。一旦完成这个基类设计以后,你只要让你的其他所有页面都从这个基类继承下来,就能保证整个网站都有一个统一的异常处理机制了。 第二种统一处理机制的实现方式是,在Global. asax里面实现。开发过.NET网站的朋友应该对他非常熟悉,在里面你可以为整个站点定义各种事件的处理方法,比如SessionStart, ApplicationStart等等。这里我们关注的是站点级的异常处理事件Application_Error(Object sender, EventArgs e),当网站遇到异常的时候,甚至是像404这样的错误,都会触发这个事件。实现方式如下:
当然你可以这样来实现: // 在Global中
// 在Error.aspx中
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |