propiedades propagacion las excepciones .net visual-studio debugging exception first-chance-exception

.net - propagacion - ¿Qué es una "excepción de primera oportunidad"?



propagacion de excepciones c# (5)

¿Qué es exactamente una excepción de primera oportunidad? ¿Cómo y dónde se origina en un programa .NET? ¿Y por qué se llama con ese nombre peculiar (de qué "oportunidad" estamos hablando)?


Acabo de empezar a usar el depurador y me encontré con esto. En mi investigación, encontré la publicación de blog de MSDN ¿Qué es una excepción de primera oportunidad? eso lo aclaró para mí.

Las grandes conclusiones de la publicación de blog para mí son que se refiere a la notificación al depurador, y no a algo que mi código necesariamente necesitaría manejar, y lo más importante, "los mensajes de excepción de primera oportunidad a menudo no significan que haya un problema en el código."


Cuando se depura una aplicación, el depurador recibe una notificación cada vez que se produce una excepción. En este punto, la aplicación se suspende y el depurador decide cómo manejar la excepción. El primer pase a través de este mecanismo se llama una excepción de "primera oportunidad".

Dependiendo de la configuración del depurador, reanudará la aplicación y pasará la excepción o dejará la aplicación suspendida e ingresará al modo de depuración. Si la aplicación maneja la excepción, continúa ejecutándose normalmente.

Los mensajes de excepción de la primera oportunidad a menudo no significan que haya un problema en el código. Para las aplicaciones / componentes que manejan las excepciones correctamente, los mensajes de excepción de primera oportunidad le permiten al desarrollador saber que se encontró y se manejó una situación excepcional.


Desde la perspectiva de un desarrollador, se trata más de una excepción de segunda oportunidad, porque significaría que no se manejó en código ; por lo tanto, la aplicación se detendría.

La primera posibilidad podría ser muchos de ellos, pero los que preocupan más, nuevamente, desde una perspectiva de desarrollo, son una segunda oportunidad, ya que conducirían a una falla en la aplicación.


Es un concepto de depuración. Básicamente, las excepciones se lanzan al depurador primero y luego al programa real, donde si no se maneja, se lanza al depurador una segunda vez, dándole la oportunidad de hacer algo con él en su IDE antes y después de la aplicación. Esto parece ser una invención de Microsoft Visual Studio.


Las notificaciones de excepción de la primera oportunidad se generan cuando se lanza una excepción. Las notificaciones de segunda oportunidad son cuando no se detectan. (Probabilidad: como oportunidad de entrar en el código del depurador).

Primera y segunda oportunidad de manejo de excepciones