Função RaiseException (errhandlingapi.h)
Gera uma exceção no thread de chamada.
Sintaxe
void RaiseException(
[in] DWORD dwExceptionCode,
[in] DWORD dwExceptionFlags,
[in] DWORD nNumberOfArguments,
[in] const ULONG_PTR *lpArguments
);
Parâmetros
[in] dwExceptionCode
Um código de exceção definido pelo aplicativo da exceção que está sendo gerada. A expressão de filtro e o bloco de manipulador de exceção de um manipulador de exceção podem usar a função GetExceptionCode para recuperar esse valor.
Observe que o sistema limpará o bit 28 de dwExceptionCode antes de exibir uma mensagem Este bit é um bit de exceção reservado, usado pelo sistema para suas próprias finalidades.
[in] dwExceptionFlags
Os sinalizadores de exceção. Isso pode ser zero para indicar uma exceção contínua ou EXCEPTION_NONCONTINUABLE para indicar uma exceção nãocontinuável. Qualquer tentativa de continuar a execução após uma exceção não contínua causa a exceção EXCEPTION_NONCONTINUABLE_EXCEPTION.
[in] nNumberOfArguments
O número de argumentos na matriz lpArguments . Esse valor não deve exceder EXCEPTION_MAXIMUM_PARAMETERS. Esse parâmetro será ignorado se lpArguments for NULL.
[in] lpArguments
Uma matriz de argumentos. Este parâmetro pode ser NULL. Esses argumentos podem conter todos os dados definidos pelo aplicativo que precisam ser passados para a expressão de filtro do manipulador de exceção.
Retornar valor
Essa função não retorna um valor.
Comentários
A função RaiseException permite que um processo use o tratamento de exceção estruturado para lidar com exceções privadas geradas por software e definidas pelo aplicativo.
Gerar uma exceção faz com que o dispatcher de exceção passe pela seguinte pesquisa por um manipulador de exceção:
- O sistema primeiro tenta notificar o depurador do processo, se houver.
- Se o processo não estiver sendo depurado ou se o depurador associado não manipular a exceção, o sistema tentará localizar um manipulador de exceção baseado em quadro pesquisando os quadros de pilha do thread no qual a exceção ocorreu. O sistema pesquisa primeiro o quadro de pilha atual e, em seguida, prossegue para trás por meio de quadros de pilha anteriores.
- Se nenhum manipulador baseado em quadro puder ser encontrado ou nenhum manipulador baseado em quadro manipular a exceção, o sistema fará uma segunda tentativa de notificar o depurador do processo.
- Se o processo não estiver sendo depurado ou se o depurador associado não manipular a exceção, o sistema fornecerá tratamento padrão com base no tipo de exceção. Na maioria das exceções, a ação padrão é chamar a função ExitProcess.
Os valores especificados nos parâmetros dwExceptionCode, dwExceptionFlags, nNumberOfArguments e lpArguments podem ser recuperados na expressão de filtro de um manipulador de exceção baseado em quadro chamando a função GetExceptionInformation . Um depurador pode recuperar esses valores chamando a função WaitForDebugEvent .
Exemplos
Para obter um exemplo, confira Usando um manipulador de exceção.
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