Função SetUnhandledExceptionFilter (errhandlingapi.h)
Permite que um aplicativo substitua o manipulador de exceção de nível superior de cada thread de um processo.
Depois de chamar essa função, se ocorrer uma exceção em um processo que não está sendo depurado e a exceção fizer isso para o filtro de exceção sem tratamento, esse filtro chamará a função de filtro de exceção especificada pelo parâmetro lpTopLevelExceptionFilter .
Sintaxe
LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
[in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);
Parâmetros
[in] lpTopLevelExceptionFilter
Um ponteiro para uma função de filtro de exceção de nível superior que será chamada sempre que a função UnhandledExceptionFilter receber o controle e o processo não estiver sendo depurado. Um valor nulo para esse parâmetro especifica o tratamento padrão em UnhandledExceptionFilter.
A função de filtro tem uma sintaxe semelhante à de UnhandledExceptionFilter: ela usa um único parâmetro do tipo LPEXCEPTION_POINTERS, tem uma convenção de chamada WINAPI e retorna um valor do tipo LONG. A função de filtro deve retornar um dos valores a seguir.
Valor | Significado |
---|---|
|
Retorne de UnhandledExceptionFilter e execute o manipulador de exceção associado. Isso geralmente resulta em encerramento do processo. |
|
Retorne de UnhandledExceptionFilter e continue a execução do ponto da exceção. Observe que a função de filtro é livre para modificar o estado de continuação modificando as informações de exceção fornecidas por meio de seu parâmetro LPEXCEPTION_POINTERS . |
|
Prossiga com a execução normal de UnhandledExceptionFilter. Isso significa obedecer aos sinalizadores SetErrorMode ou invocar a caixa de mensagem pop-up Erro do Aplicativo. |
Retornar valor
A função SetUnhandledExceptionFilter retorna o endereço do filtro de exceção anterior estabelecido com a função . Um valor retornado NULL significa que não há nenhum manipulador de exceção de nível superior atual.
Comentários
A emissão de SetUnhandledExceptionFilter substitui o filtro de exceção de nível superior existente para todos os threads existentes e futuros no processo de chamada.
O manipulador de exceção especificado por lpTopLevelExceptionFilter é executado no contexto do thread que causou a falha. Isso pode afetar a capacidade do manipulador de exceção de se recuperar de determinadas exceções, como uma pilha inválida.
Requisitos
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | errhandlingapi.h (inclua Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |
Confira também
Funções do tratamento de exceções estruturado