try tipos sirve qué que propiedades para las lanzar excepciones excepcion errores definicion como catch capturar debugging exception ide try-catch

debugging - tipos - try catch definicion



Depuración de una excepción en un bloque catch vacío (7)

¿No puedes simplemente agregar una excepción en ese punto e inspeccionarla?

Estoy depurando una aplicación de producción que tiene una erupción de suspiros de bloques de captura vacíos:

try {*SOME CODE*} catch{}

¿Hay alguna manera de ver cuál es la excepción cuando el depurador golpea la captura en el IDE?


@sectrean

Eso no funciona porque el compilador ignora el valor Ex de Exception si no hay nada usándolo.


En VS, si miras en el área Locals de tu IDE mientras estás dentro del bloque catch, tendrás algo así como $ EXCEPTION que tendrá toda la información para la excepción que acaba de capturarse.


En Visual Studio - Depurar -> Excepciones -> Marque la casilla por "Excepciones de Common Language Runtime" en la columna lanzada


No, es imposible, porque ese bloque de código dice "No me importa la excepción". Podría hacer un descubrimiento global y reemplazarlo con el siguiente código para ver la excepción.

catch {}

con lo siguiente

catch (Exception exc) { #IF DEBUG object o = exc; #ENDIF }

Lo que hará es mantener su captura de corriente actual para el código de producción, pero cuando se ejecuta en DEBUG le permitirá establecer puntos de interrupción en el objeto o.


Puedes escribir

catch (Exception ex) { }

Luego, cuando se lanza una excepción y se captura aquí, puede inspeccionar, por ejemplo,


Si está usando Visual Studio, existe la opción de romper cada vez que se lanza una excepción, independientemente de si no se ha manejado o no. Cuando se lanza la excepción, el asistente de excepción (tal vez solo VS 2005 y posterior) le dirá qué tipo de excepción es.

Presiona Ctrl + Alt + E para abrir el diálogo de opciones de excepción y activarlo.