【发布时间】:2016-08-27 09:42:51
【问题描述】:
我将创建自己的exceptionfilter,它继承自FilterAttribute 和IExceptionFilter
源码如下:
public class IndexException : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext exceptionContext)
{
if (!exceptionContext.ExceptionHandled && exceptionContext.Exception is IndexOutOfRangeException)
{
exceptionContext.Result = new RedirectResult("/Content/ExceptionFound.html");
exceptionContext.ExceptionHandled = true;
}
}
}
但是当我的代码进入手动生成异常的 Index 方法时,我的过滤器无法工作
[IndexException]
public ActionResult Index()
{
throw new Exception("Не может быть меньше нуля");
【问题讨论】:
-
尝试在控制器而不是方法上添加
[IndexException] -
if (!exceptionContext.ExceptionHandled && exceptionContext.Exception is IndexOutOfRangeException) -> 您从操作中抛出的异常不是 IndexOutOfRange 类型,因此不会进入 if 条件
-
请查看我的回答
标签: c# asp.net asp.net-mvc date