ASP.NET mvc异常处理的方法示例介绍

时间:2022-09-18 00:10:11

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();