2010-05-04 5 views
0

Est-il judicieux de gérer les erreurs et de consigner les méthodes d'actions à l'intérieur ou de gérer la méthode OnException dans les contrôleurs. L'une des méthodes consiste à écrire try/catch dans toutes les méthodes d'action, même s'il n'y a rien à faire pour récupérer de l'erreur. La gestion au niveau du contrôleur permettrait la journalisation et la redirection vers une page de gestionnaire d'erreurs sans écrire try/catch dans toutes les méthodes d'action.Traitement des erreurs dans les contrôleurs avec MVC

Quelle méthode a le plus de sens? Voici un exemple de code de try/catch dans une méthode d'action.

 [HttpPost] 
     public ActionResult Delete(int id) 
     { 
      using (new Tracer("Project Controller")) 
      { 
       try 
       { 
        Logger.Write("Deleting project"); 
        projService.DeleteProject(id); 
        TempData["message"] = "Project Deleted successfully"; 
       } 
       catch (System.Exception ex) 
       { 
        HandleException(ex, "Project could not be deleted."); 
       } 
       return RedirectToAction("List"); 
      } 
     } 

Répondre

1

Il existe déjà un départ sous la forme de l'attribut HandleError.

Je vous suggère soit de le sous-classer, soit de voir son implémentation pour en créer une personnalisée. C'est vraiment simple.

HandleErrorAttribute.cs

Questions connexes