Funzione SetUnhandledExceptionFilter (errhandlingapi.h)
Consente a un'applicazione di sostituire il gestore di eccezioni di primo livello di ogni thread di un processo.
Dopo aver chiamato questa funzione, se si verifica un'eccezione in un processo che non viene sottoposto a debug e l'eccezione lo imposta sul filtro delle eccezioni non gestito, tale filtro chiamerà la funzione di filtro delle eccezioni specificata dal parametro lpTopLevelExceptionFilter .
Sintassi
LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(
[in] LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);
Parametri
[in] lpTopLevelExceptionFilter
Puntatore a una funzione di filtro eccezioni di primo livello che verrà chiamata ogni volta che la funzione UnhandledExceptionFilter ottiene il controllo e il processo non viene sottoposto a debug. Il valore NULL per questo parametro specifica la gestione predefinita all'interno di UnhandledExceptionFilter.
La funzione di filtro ha una sintassi simile a quella di UnhandledExceptionFilter: accetta un singolo parametro di tipo LPEXCEPTION_POINTERS, ha una convenzione di chiamata WINAPI e restituisce un valore di tipo LONG. La funzione di filtro deve restituire uno dei valori seguenti.
Valore | Significato |
---|---|
|
Restituire da UnhandledExceptionFilter ed eseguire il gestore eccezioni associato. Ciò comporta in genere la terminazione del processo. |
|
Restituire da UnhandledExceptionFilter e continuare l'esecuzione dal punto dell'eccezione. Si noti che la funzione di filtro è libera di modificare lo stato di continuazione modificando le informazioni sull'eccezione fornite tramite il relativo parametro LPEXCEPTION_POINTERS . |
|
Procedere con l'esecuzione normale di UnhandledExceptionFilter. Ciò significa obbedire ai flag SetErrorMode o richiamare la finestra di messaggio popup Errore applicazione. |
Valore restituito
La funzione SetUnhandledExceptionFilter restituisce l'indirizzo del filtro di eccezione precedente stabilito con la funzione . Un valore restituito NULL indica che non è presente alcun gestore di eccezioni di primo livello corrente.
Commenti
L'emissione di SetUnhandledExceptionFilter sostituisce il filtro eccezioni di primo livello esistente per tutti i thread esistenti e tutti i thread futuri nel processo chiamante.
Il gestore eccezioni specificato da lpTopLevelExceptionFilter viene eseguito nel contesto del thread che ha causato l'errore. Ciò può influire sulla capacità del gestore eccezioni di eseguire il ripristino da determinate eccezioni, ad esempio uno stack non valido.
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | errhandlingapi.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
Funzioni di gestione delle eccezioni strutturate
Cenni preliminari sulla gestione delle eccezioni strutturate