(1)创建一个属性类,继承FilterAttribute
和IExceptionFilter
public class ExceptionFilter : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext exceptionContext)
{
Exception ex = exceptionContext.Exception;
string errorMessage = string.Format(
"Error Message: {0}<br/>Error StackTrace: {1}",
ex.Message,
ex.StackTrace
);
exceptionContext.HttpContext.Response.Write(errorMessage);
AppLog.Write(errorMessage);
exceptionContext.ExceptionHandled = true; //不报告异常
}
}
(2)对网站需要处理异常的Controller,增加这个属性。
一般的网站不会直接继承Controller类,而是全部继承一个用户自定义的Controller子类。
所以,这个属性只需要加到这个Controller子类中即可。
[ExceptionFilter]
public class MainController : Controller
{
//...
}