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(); 
} 
} 
 
                
                
                    本文地址:https://www.stayed.cn/item/24584
                    转载请注明出处。
                    本站部分内容来源于网络,如侵犯到您的权益,请 联系我