ASP.NET MVC gives us
IExceptionFilter, with which we can create custom, global exception handlers to apply to controller actions.
We can apply this filter to all Action methods, by adding our filter to the list of global filters:
and wiring this up to our application in our
As you may expect, Sitecore exposes this functionality as pipeline processors. Sitecore defined a custom
IExceptionFilter implementation (see our snippet above) which kicks off the mvc.exception pipeline, passing along the
As client developers, it is our job to create an appropriate processor to accept the
ExceptionContext and do something with it. Let’s run through an example where we want to return a JSON representation of the error, loaded with as much useful information as possible.
For more reading on Sitecore controller actions returning JSON, have a look at John West’s post
So, first up, create an empty handler class, which inherits from
Create a Web.config include, to add this processor to the mvc.exception pipeline:
Ok! Now our
JSONExceptionHandler class will be called each time an exception occurs in MVC code. So, let’s grab all the detail we can from the
ExceptionContext class and return it as JSON:
This will produce a result such as: