我有一个基本控制器类,我重写到Controller.OnException处理程序方法,以便为从这个类继承的某些类型的控制器提供一般的错误处理(这些控制器是返回
JSON结果的API控制器).当控制器引发异常时,OnException方法永远不会被调用.有没有人看到我做错了,还是有更好的办法来处理这种情况?
使用MVC 1.0
基层:
public class APIController : Controller { protected override void OnException(ExceptionContext filterContext) { //This is never called filterContext.Result = new JsonResult(); base.OnException(filterContext); } }
继承类:
public class MyController : APIController { public AjaxResult ForcedException() { throw new SystemException(); } }
解决方法
如果我正确地了解你的问题 – 你的异常必须在OnException中被标记为“已处理”.尝试这个:
filterContext.ExceptionHandled = true;