A veces ocurren excepciones. Cuando lo hacen, se registran y luego se analizan. El registro obviamente contiene el seguimiento de la pila y otra información global, pero a menudo falta un contexto crucial. Me gustaría anotar una excepción con esta información adicional para facilitar la depuración post mortem.Anotaciones Excepciones con información adicional sin capturarlas
- no quiero a
try{...}catch{... throw;}
ya que cuenta como la captura de una excepción y que hace más difícil la depuración (durante el desarrollo me gustaría la aplicación de parar y el depurador de reaccionar cuando se produce la excepción original y no cuando la excepción más externa no detectada es). Los manejadores de excepciones de primera oportunidad no son una solución, ya que lamentablemente hay demasiados falsos positivos. - Me gustaría evitar una sobrecarga excesiva en el caso normal y no excepcional.
¿Hay alguna forma de almacenar elementos clave de contexto (por ejemplo, nombre de archivo procesado o lo que sea) en una excepción de una manera que no capte la excepción?
Interesante. ¿Has pensado envolver el 'try {' y '} catch {... throw;}' en '#if! DEBUG'. En el desarrollo, obtendría la excepción original del sitio de llamadas original. –
¿Qué le parece usar el patrón try {..} catch {.. throw;}, pero cambie sus opciones de Visual Studio para que se rompa cuando se lanza una excepción CLR. – Simon
Parece una buena opción para AOP como PostSharp, pero esto no cumple con su requisito de no alcanzarlo. Simplemente elimina la cantidad de codificación que necesita hacer. –