【发布时间】:2009-06-06 18:42:13
【问题描述】:
我有一个基本控制器类,我将在其中覆盖 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 方法”——你用调试器检查了吗?从你的问题看不清楚。
-
我已经从调试器中尝试过,并使用日志语句并在调试器之外运行它。它们似乎都不适合我。
标签: c# asp.net-mvc controller onexception