Funzione SetErrorMode (errhandlingapi.h)
Controlla se il sistema gestirà i tipi di errori gravi specificati o se il processo li gestirà.
Sintassi
UINT SetErrorMode(
[in] UINT uMode
);
Parametri
[in] uMode
Modalità di errore del processo. Questo parametro può essere uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Usare l'impostazione predefinita del sistema, ovvero visualizzare tutte le finestre di dialogo di errore. |
|
Il sistema non visualizza la finestra di messaggio critical-error-handler. Al contrario, il sistema invia l'errore al processo chiamante.
È consigliabile che tutte le applicazioni chiamino la funzione SetErrorMode a livello di processo con un parametro di SEM_FAILCRITICALERRORS all'avvio. Ciò consente di evitare che le finestre di dialogo in modalità di errore vengano bloccate dall'applicazione. |
|
Il sistema corregge automaticamente gli errori di allineamento della memoria e li rende invisibili all'applicazione. Esegue questa operazione per il processo chiamante e per tutti i processi discendenti. Questa funzionalità è supportata solo da determinate architetture del processore. Per altre informazioni, vedere la sezione Osservazioni.
Dopo aver impostato questo valore per un processo, i tentativi successivi di cancellare il valore vengono ignorati. |
|
Il sistema non visualizza la finestra di dialogo Segnalazione errori Windows. |
|
La funzione OpenFile non visualizza una finestra di messaggio quando non riesce a trovare un file. Viene invece restituito l'errore al chiamante. Questa modalità di errore esegue l'override del flag OF_PROMPT . |
Valore restituito
Il valore restituito è lo stato precedente dei flag di bit in modalità errore.
Commenti
Ogni processo ha una modalità di errore associata che indica al sistema in che modo l'applicazione risponderà a errori gravi. Un processo figlio eredita la modalità di errore del processo padre. Per recuperare la modalità di errore del processo, usare la funzione GetErrorMode .
Poiché la modalità di errore è impostata per l'intero processo, è necessario assicurarsi che le applicazioni multithreading non impostino flag diversi in modalità errore. In questo modo è possibile che la gestione degli errori non sia coerente.
Il sistema non rende visibili gli errori di allineamento a un'applicazione in tutte le architetture del processore. Pertanto, specificare SEM_NOALIGNMENTFAULTEXCEPT non è un errore in tali architetture, ma il sistema è libero di ignorare automaticamente la richiesta. Ciò significa che le sequenze di codice come le seguenti non sono sempre valide nei computer x86:
C++ |
---|
SetErrorMode(SEM_NOALIGNMENTFAULTEXCEPT); fuOldErrorMode = SetErrorMode(0); ASSERT(fuOldErrorMode == SEM_NOALIGNMENTFAULTEXCEPT); |
Visual Studio 2005: Quando si dichiara un puntatore a una struttura che potrebbe non avere dati allineati, è possibile usare la parola chiave __unaligned per indicare che il tipo deve essere letto un byte alla volta. Per altre informazioni, vedere Allineamento dei dati di Windows.
Windows 7: I chiamanti devono preferire SetThreadErrorMode rispetto a SetErrorMode perché è meno dirompente rispetto al normale comportamento del sistema.
Requisiti
Requisito | Valore |
---|---|
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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per