una - Averiguar qué excepciones podría arrojar un método en C#
que es una excepción en c sharp (4)
Creo que Exception hunter puede proporcionar esta información, sin embargo, cuesta dinero ...
¿Hay alguna forma de averiguar qué excepciones podría arrojar cualquier método en el código .NET? Idealmente, quiero ver qué podría arrojarse y elegir cuáles quiero manejar. Supongo que quiero la información que obtendrías de la cláusula throws en java.
La situación es que estoy haciendo una consulta de linq en un documento xml de la red y quiero saber qué podría salir mal. Podría abrir el conjunto en reflector y echar un vistazo, pero pensé que podría haber una manera más fácil.
Después de leer otro artículo sobre esto en , construí sobre la otra respuesta para escribir una herramienta para hacer esto, puedes obtener el código fuente de GitHub aquí:
github.com/stevesheldon/ExceptionReflector
también puedes leer más aquí:
Siempre que use clases BCL, todas están completamente documentadas e Intellisense por lo tanto muestra cualquier excepción que un método pueda arrojar. Aparte de eso (y leer los documentos), no hay forma, creo.
.NET no tiene excepciones forzadas ("verificadas") como java. El intellisense podría mostrar esta información, si el desarrollador ha agregado un bloque /// <exception.../>
, pero en última instancia, pueden ocurrir más excepciones de las OutOfMemoryException
( OutOfMemoryException
, ThreadAbortException
, TypeLoadException
, etc. pueden suceder de manera bastante impredecible).
En general, debe tener una idea de qué cosas pueden salir mal y de cuáles puede hacer algo realmente útil. En la mayoría de los casos, el comportamiento correcto es permitir que la excepción aumente (simplemente ejecute cualquier código "finally" para liberar recursos).
Eric Lippert tiene un buen blog sobre este tema here .