Tratamento de exceções (SDK do Visual Studio)
A seguir descreve-se o processo que ocorre quando exceções são lançadas.
Processo de tratamento de exceções
Quando uma exceção é lançada pela primeira vez, mas antes de ser manipulada 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
é enviado se apenas as configurações da exceção (especificadas na caixa de diálogo Exceções no pacote de depuração) especificarem que o usuário deseja parar nas notificações de exceção de primeira chance.O SDM chama IDebugExceptionEvent2::GetException para obter a propriedade de exception.
O pacote de depuração chama IDebugExceptionEvent2::CanPassToDebuggee para determinar quais opções apresentar ao usuário.
O pacote de depuração pergunta ao usuário como lidar com a exceção abrindo uma caixa de diálogo de exceção de primeira chance.
Se o usuário optar por continuar, o SDM chamará IDebugExceptionEvent2::CanPassToDebuggee.
Se o método retornar S_OK, chame IDebugExceptionEvent2::P assToDebuggee.
-ou-
Se o método retornar S_FALSE, o programa que está sendo depurado terá uma segunda chance de manipular a exceção.
Se o programa que está sendo depurado não tiver manipulador para uma exceção de segunda chance, o DE enviará um
IDebugExceptionEvent2
para o SDM como EVENT_SYNC_STOP.O pacote de depuração pergunta ao usuário como lidar com a exceção abrindo uma caixa de diálogo de exceção de primeira chance.
O pacote de depuração chama IDebugExceptionEvent2::CanPassToDebuggee para determinar quais opções apresentar ao usuário.
O pacote de depuração pergunta ao usuário como lidar com a exceção abrindo uma caixa de diálogo de exceção de segunda chance.
Se o método retornar S_OK, chame
IDebugExceptionEvent2::PassToDebuggee
.