Déterminer quelles exceptions une méthode pourrait générer en C #

Existe-t-il un moyen de savoir quelles exceptions peuvent être émises par une méthode quelconque dans le code .NET? Idéalement, je veux voir ce qui pourrait être jeté et choisir ceux que je veux gérer. Je suppose que je veux les informations que vous obtiendrez de la clause throws dans java.

La situation est que je fais une requête linq sur un document XML à partir du réseau et que vous voulez savoir ce qui pourrait mal tourner. Je pourrais ouvrir l’assemblage dans le réflecteur et jeter un coup d’œil, mais je pensais qu’il y aurait un moyen plus facile.

.NET n’a pas d’exceptions (“vérifiées”) comme java. L’intellisense peut afficher ces informations, si le développeur a ajouté un bloc /// – mais en fin de compte, d’autres exceptions peuvent survenir ( OutOfMemoryException , ThreadAbortException , TypeLoadException , etc.).

En général, vous devriez avoir une idée de ce qui risque de se tromper et de ce que vous pouvez réellement faire. Dans la plupart des cas, le comportement correct consiste à laisser l’exception apparaître (il suffit d’exécuter tout code “Enfin” pour libérer des ressources).

Eric Lippert a un bon blog sur ce sujet ici .

Je pense que le chasseur d’exception peut fournir cette information, mais cela coûte de l’argent …

Après avoir lu un autre article à ce sujet sur StackOverflow, je me suis basé sur cette autre réponse pour écrire un outil pour ce faire, vous pouvez obtenir le code source de GitHub ici:

Réflecteur d’exception

vous pouvez également lire plus ici:

http://steves-rv-travels.com/archives/167

Tant que vous utilisez des classes BCL, elles sont toutes complètement documentées et Intellisense affiche donc toutes les exceptions qu’une méthode peut générer. A part ça (et en lisant les docs), il n’y a pas moyen, je pense.