Me gustaría crear un filtro de excepción personalizado que capture las excepciones lanzadas en las acciones del controlador que devuelven los resultados de JSON.Cómo devolver el resultado JSON de un filtro de excepción personalizado?
me gustaría refactorizar el método siguiente acción:
public JsonResult ShowContent()
{
try
{
// Do some business logic work that might throw a business logic exception ...
//throw new ApplicationException("this is a business exception");
var viewModel = new DialogModel
{
FirstName = "John",
LastName = "Doe"
};
// Other exceptions that might happen:
//throw new SqlException(...);
//throw new OtherException(...);
//throw new ArgumentException("this is an unhandeled exception");
return
Json(
new
{
Status = DialogResultStatusEnum.Success.ToString(),
Page = this.RenderPartialViewToString("ShowContent", viewModel)
});
}
catch (ApplicationException exception)
{
return Json(new { Status = DialogResultStatusEnum.Error.ToString(), Page = exception.Message });
}
catch (Exception exception)
{
return Json(new { Status = DialogResultStatusEnum.Exception.ToString(), Page = "<h2>PROBLEM!</h2>" });
}
}
}
Lo que me gustaría hacer es crear un atributo de filtro de excepción personalizada que captura cualquier excepción lanzada en la acción sigue la siguiente lógica:
- comprobar si había una excepción
- No: volver
- sí:
- Si BusinessLogic excepción - devuelve un resultado JSON
- Si otra excepción no controlada:
- Entrar
- Retorno otro resultado JSON con un código de resultado diferente
Gracias swapneel pero me gustaría crear un atributo de filtro th en Voy a utilizar para decorar mis acciones de controlador que devuelven JSON - No estoy buscando sobreescribir el método OnException. – Elie
que ha solicitado para - atributo de filtro de excepción personalizado en su pregunta? – swapneel
ver mi * EDITAR para HandleAttribute para acciones * – swapneel