Normalmente, non prevedo eccezioni e se le ottengo, è qualcosa che non riesco a risolvere nel mio codice: problemi di input dell'utente o problemi di connettività con il database.
Ma gli errori si verificano così, voglio informare il mio utente che qualcosa è andato storto e registrare l'errore.
La mia gestione delle eccezioni è generalmente simile a questa:
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 });
}
Sono consapevole che nella maggior parte dei casi, la gestione delle eccezioni Pokemon è scoraggiato, ma poiché non c'è nulla che io possa fare davvero con un errore, è gestire le eccezioni Pokemon non va bene usare semplicemente per segnalare l'errore?