建设局项目几乎要接近尾声了,从头到尾差不多有半个月的时间吧,半个月不知不觉就这样过去了,总结这半个月,好像每天都很忙,每天都很忙碌,但是仔细想想好像又没做出多少正儿八经的工作量,总共做了下面几个模块:
奖项惩罚列表,编辑等 |
企业信息编辑申请 |
企业信息编辑审核 |
企业申请列表 |
公文发布于接受公文 |
通用自动捕获异常和异常处理 |
半个月的时间,就做了这些工作量,虽然老师说我们的工作量已经超过了他的估计了。也可能是我们队ASP.NET没有任何基础原因吧,刚开始速度确实有点慢,这两天主要是做一个通用自动捕获异常和异常处理,刚开始,不知道ASP.NET提供了一些自动捕获异常的机制,所以第一天进展十分不顺利,查阅了半天的资料,总算利用两天的时间把它做完了。
这个通用自动捕获异常和异常处理具体思路其实很简单,ASP.NET在应用程序级别处理异常的代码都是放在Global.asax的Application_Error事件处理下的:
protected void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 Exception objErr = Server.GetLastError().GetBaseException(); string configPath = Server.MapPath("~/Exception.config"); string log = ErroUtil.Write2Log(objErr); ErroUtil.PostEmail(log); Server.ClearError(); Response.Redirect( new XmlParse(configPath).getValue("redirectPath")); }
我们可以在上面的事件处理的方法中捕获所有的异常,而且还可以把异常记录到日志文件,并且同时发送Email告诉开发人员出现了什么问题,如下:
发邮件:
/// <summary> /// 把抛出异常的信息以邮件的形式 /// 发送给开发人员便于维护 /// </summary> /// <param name="log">抛出异常的信息</param> public static void PostEmail(string log) {//发邮件 //获得配置信息,邮箱服务器名称,发送和接受邮箱地址,密码 string stmpServer = parse.getValue("stmpServer"); string email = parse.getValue("email"); string password = parse.getValue("password"); System.Net.Mail.SmtpClient client = new SmtpClient(stmpServer); client.UseDefaultCredentials = false; client.Credentials = new System.Net.NetworkCredential(email, password); client.DeliveryMethod = SmtpDeliveryMethod.Network; System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); mail.From = new MailAddress(email); mail.To.Add(email); mail.Subject = System.DateTime.Now.ToString() + ""; mail.BodyEncoding = System.Text.Encoding.Default; mail.Body = log; //client.Send(mail); }存日志:
为了做成通用的,我们把一些配置信息,保存到xml里面,然后通过解析xml来获取数据,解析xml获取数据:
由于配置文件中有邮箱和密码信息,xml代码就不贴了,这个xml也很简单,总共也就十行左右。到此为止,整个 通用自动捕获异常和异常处理机制就完成了,由于本人刚刚接触ASP.NET,所以难免有些错误,请大牛拍砖
本文为作者原创,转载请说明出处:http://blog.csdn.net/csh624366188/article/details/7268500