2008-11-21 5 views
5

Je suis en train d'écrire un module de gestion des erreurs pour un système assez complexe architecturé en couches. Parfois, notre couche de données jette des exceptions obscures.Dans un gestionnaire d'exceptions C#, puis-je trouver les paramètres qui ont été transmis à la méthode qui a déclenché l'exception?

Il serait très pratique de déconnecter les valeurs des paramètres de la méthode qui a levé l'exception.

Je peux réfléchir sur la propriété TargetSite de l'exception pour trouver les types de paramètres et les noms de la méthode, mais je ne semble pas pouvoir obtenir les valeurs ... ai-je oublié quelque chose?


Dupe

In a .net Exception how to get a stacktrace with argument values

Répondre

3

La structure intégrée ArgumentOutOfRangeException (que vous devez lancer dans une méthode si les paramètres entrants sont ... hors de portée ... a un champ privé et une propriété publique pour le paramètre de méthode qui a provoqué l'erreur ... Lorsque vous créer cette exception, vous passez la valeur du paramètre dans le cteur ...

throw new ArgumentOutOfRangeException(string parameterName, 
      object actualValue, string message); 

Pour d'autres exceptions, si vous attrapez l'exception dans la méthode où il est jeté, et l'envelopper dans une exception personnalisée de vos propres, qui a des champs et des propriétés supplémentaires pour ces paramètres de méthode

Questions connexes