Normalmente, no anticipo excepciones y, si las obtengo, es algo que no puedo corregir en mi código: problemas de entrada de usuarios o de conectividad con la base de datos.
Pero al menos ocurren errores, quiero informar a mi usuario de que algo salió mal y registrar el error.
Mi manejo de excepciones generalmente se parece a esto:
public JsonResult Create(UserCreateEditViewModel model)
{
try
{
if (!ModelState.IsValid) return Json(new { IsOk = false, Message = "Some of your data was invalid, please try again." });
var User = new User
{
// map UserCreateEditViewModel properties to User properties
};
OrtundEntities Db = new OrtundEntities();
Db.Users.Add(User);
Db.SaveChanges();
return Json
}
catch(Exception ex)
{
// can't correct user data or repair connection
// issues to the database so just report the error to the user
return ReportError(ex, "Create User");
}
}
public JsonResult ReportError(Exception ex, string action)
{
return Json(new { IsOk = false, Title = action, Message = ex.Message });
}
Soy consciente de que en la mayoría de los casos, se desaconseja manejo de excepciones de Pokémon , pero como no hay nada que pueda hacer con un error, ¿no está bien manejo de excepciones de Pokémon simplemente para informar el error?