(Visual Studio SDK) de manipulação de exceção
A seguir descreve o processo que ocorre quando as exceções são lançadas.
Processo de manipulação de exceção
Quando uma exceção é lançada pela primeira vez, mas antes que ele é tratado pelo manipulador de exceção no programa que está sendo depurado, o mecanismo de depuração (DE) envia um IDebugExceptionEvent2 para o Gerenciador de depuração de sessão (SDM) como um evento de parada. O IDebugExceptionEvent2 é enviada se somente as configurações para a exceção (especificado na caixa de diálogo exceções no pacote de depuração) especificam que o usuário deseja parar de notificações de exceções de primeira chance.
As chamadas SDM IDebugExceptionEvent2::GetException para obter a propriedade de exceção.
As chamadas de pacote de depuração IDebugExceptionEvent2::CanPassToDebuggee para determinar as opções para apresentar ao usuário.
O pacote de depuração pergunta ao usuário como tratar a exceção, abrindo uma caixa de diálogo de exceções de primeira chance.
Se o usuário optar por continuar, o SDM chama IDebugExceptionEvent2::CanPassToDebuggee.
Se o método retorna S_OK, chama IDebugExceptionEvent2::PassToDebuggee.
- ou -
Se o método retorna S_FALSE, o programa que está sendo depurado recebe uma segunda chance para tratar a exceção.
Se o programa que está sendo depurado não tem nenhum manipulador de exceção de uma segunda chance, o DE envia um IDebugExceptionEvent2 para o SDM como EVENT_SYNC_STOP.
O pacote de depuração pergunta ao usuário como tratar a exceção, abrindo uma caixa de diálogo de exceções de primeira chance.
As chamadas de pacote de depuração IDebugExceptionEvent2::CanPassToDebuggee para determinar as opções para apresentar ao usuário.
O pacote de depuração pergunta ao usuário como tratar a exceção, abrindo uma caixa de diálogo de exceção de segunda chance.
Se o método retorna S_OK, chama IDebugExceptionEvent2::PassToDebuggee.