一个比较好的.net 3.5的异常报告类

本文介绍了一种在.NET 3.5及以上版本中利用扩展方法发送异常报告邮件的方法。通过简单的代码示例展示了如何自定义异常处理逻辑,并将异常详细信息以HTML格式邮件发送给指定收件人。
发现了一个比较好的异常报告类,其中用到了.net 3.5以上的扩展方法的机制,
实现的是当有异常时,发邮件报告
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;

namespace Experiement
{
public static class MyExtension
{
public static void SendErrorEmail(this Exception ex)
{
MailMessage mailMessage = new MailMessage(new MailAddress("from@gmail.com")
, new MailAddress("to@gmail.com"));
mailMessage.Subject = "Exception Occured in your site";
mailMessage.IsBodyHtml = true;

System.Text.StringBuilder errorMessage = new System.Text.StringBuilder();

errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}","Exception",ex.Message));
errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", "Stack Trace", ex.StackTrace));

if (ex.InnerException != null)
{
errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", " Inner Exception", ex.InnerException.Message));
errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", "Inner Stack Trace", ex.InnerException.StackTrace));
}

mailMessage.Body = errorMessage.ToString();

System.Net.NetworkCredential networkCredentials = new
System.Net.NetworkCredential("youraccount@gmail.com", "password");

SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = networkCredentials;
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.Send(mailMessage);


}
}
}

使用:
using System;

namespace Experiement
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender,System.EventArgs e)
{
try
{
throw new Exception("My custom Exception");
}
catch (Exception ex)
{
ex.SendErrorEmail();
Response.Write(ex.Message);
}
}

}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值