Я ищу лучший подход при обработке ошибок в контроллере при возврате результата JSON.Обработка исключений в MVC JSON Controller Action
Во-первых, что было бы лучшей практикой, если я получу необработанное исключение в контроллере, и я возвращаю JSON? Я думаю, 400 или 500 ошибок? Клиент проверяет статус и делает что угодно.
Я играю с FilterAttribute и IExceptionFilter, но я не могу получить функцию OnException для вызова. Я применил атрибут к действию контроллера.
Любые идеи, почему это может не вызвать?
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = false, AllowMultiple = false)]
public sealed class AjaxHandleErrorAttribute : FilterAttribute, IExceptionFilter
{
// This is never called !!!
public void OnException(ExceptionContext filterContext)
{
if (filterContext == null)
{
throw new ArgumentNullException("filterContext");
}
if (filterContext.Exception != null
&& !filterContext.ExceptionHandled)
{
...
filterContext.HttpContext.Response.StatusCode = 400;
filterContext.HttpContext.Response.StatusDescription = "Error processing request";
...
}
}
}
public class MyController : Controller
{
public MyController(IMyRepository repo)
{
...
}
[AjaxHandleError]
public ActionResult GetSomeJson(int anId)
{
throw new System.Exception();
}
}