ASP.NET mvc异常处理的方法有哪些

1.首先常见保存异常的类(就是将异常信息写入到文件中去)

 

public class LogManager

   {

       private string logFilePath = string.Empty;

       public LogManager(string logFilePath)

       {

           this.logFilePath = logFilePath;

           FileInfo file = new FileInfo(logFilePath);

           if (!file.Exists)

           {

               file.Create().Close();

           }


       }

       public void SaveLog(string message, DateTime writerTime)

       {

           string log = writerTime.ToString() + ":" + message;

           StreamWriter sw = new StreamWriter(logFilePath, true);

           sw.WriteLine(log);

           sw.Close();

       }

   }


 

 

2、控制器异常处理

 

这种方式就在需要进行异常处理的controller中重写OnException()方法即可,因为它本身继承了IExceptionFilter接口

 

public class ExceptionController : Controller

   {

       public ActionResult Index()

       {

           throw new Exception("我抛出异常了!");

       }

       protected override void OnException(ExceptionContext filterContext)

       {

           string filePath = Server.MapPath("~/Exception。txt");

           StreamWriter sw = System.IO.File.AppendText(filePath);

           sw.WriteLine(DateTime.Now.ToString() + ":" + filterContext.Exception.Message);

           sw.Close();

           base.OnException(filterContext);

           Redirect("/");

       }

   }


 

 

3、过滤器异常处理

 

namespace MyMVC.Controllers

{

   public class ExceptionController : Controller

   {

       [Error]

       public ActionResult Index()

       {

           throw new Exception("过滤器异常!");

       }

   }

}

public class ErrorAttribute : HandleErrorAttribute

{

   public override void OnException(ExceptionContext filterContext)

   {

       base.OnException(filterContext);

       string path = filterContext.HttpContext.Server.MapPath("~/Exception.txt");

       StreamWriter sw = System.IO.File.AppendText(path);

       sw.WriteLine(DateTime.Now.ToString()+":"+filterContext.Exception.Message);

       sw.Close();

   }

}


 

 

参考资料:   ASP.NET mvc异常处理的方法     http://www.studyofnet.com/news/317.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值