ASP.Net MVC Error handling using Action Filters At

2019-02-28 01:19发布

I am trying to implement Error handling using Action Filters Attributes as per ScottGu's blog

My code is as follows:

[HandleError]
[HandleError(ExceptionType = typeof(NullReferenceException), View = "CustomError")]
public class ArticlesController : Controller
{
    public object OhDearACrash()
    {
        throw new Exception("Oh Dear");
    }

    public object NullRefCrash()
    {
        throw new NullReferenceException();
    }

I am encountering an issue where I am never able to hit the CustomError view as I receive an exception when the exception is thrown

OhDearACrash: Exception was unhandled by user code

NullRefCrash: NullReferenceException was unhandled by user code

and so the unhandled exception is picked up by the Default [HandleError] which routes to View/Shared/Error.aspx which handles the error.

How do I handle the unhandled exception?

1条回答
兄弟一词,经得起流年.
2楼-- · 2019-02-28 01:44

The action filters are executed one by one. In your case, the problem is probably that the generic HandleError action filter is executed before the specific one.

You can influence the order of execution by setting the 'Order' property of your action filter:

[HandleError(Order = 2)]
[HandleError(Order = 1, ExceptionType = typeof(NullReferenceException), View = "CustomError")]
public class ArticlesController : Controller
{
}
查看更多
登录 后发表回答