Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A continuación se describe el proceso que se produce cuando se producen excepciones.
Proceso de control de excepciones
Cuando se produce una excepción por primera vez, pero antes de ser gestionada por el controlador de excepciones en el programa que se está depurando, el motor de depuración (DE) envía un IDebugExceptionEvent2 al administrador de depuración de sesión (SDM) como evento de interrupción.
IDebugExceptionEvent2Se envía si solo la configuración de la excepción (especificada en el cuadro de diálogo Excepciones del paquete de depuración) especifica que el usuario quiere detener las notificaciones de excepción de primera oportunidad.El SDM llama a IDebugExceptionEvent2::GetException para obtener las propiedades de la excepción.
El paquete de depuración llama a IDebugExceptionEvent2::CanPassToDebuggee para determinar qué opciones presentar al usuario.
El paquete de depuración pregunta al usuario cómo controlar la excepción abriendo un cuadro de diálogo de excepción en primera instancia.
Si el usuario decide continuar, el SDM llama a IDebugExceptionEvent2::CanPassToDebuggee.
Si el método devuelve S_OK, llama a IDebugExceptionEvent2::PassToDebuggee.
O bien:
Si el método devuelve S_FALSE, se le da al programa que se está depurando una segunda oportunidad para manejar la excepción.
Si el programa que se está depurando no tiene un controlador para una excepción de segunda oportunidad, el DE envía un
IDebugExceptionEvent2al SDM como EVENT_SYNC_STOP.Al abrir un cuadro de diálogo de excepción de primera oportunidad, el paquete de depuración pregunta al usuario cómo controlar la excepción.
El paquete de depuración llama a IDebugExceptionEvent2::CanPassToDebuggee para determinar qué opciones presentar al usuario.
El paquete de depuración solicita al usuario cómo manejar la excepción al abrir un cuadro de diálogo de excepción de segunda oportunidad.
Si el método devuelve S_OK, llama a
IDebugExceptionEvent2::PassToDebuggee.