_set_error_mode
Ändert __error_mode
, um einen nicht standardmäßigen Speicherort zu bestimmen, an dem die C-Laufzeit eine Fehlermeldung für einen Fehler schreibt, der das Programm beenden kann.
Wichtig
Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
int _set_error_mode(
int mode_val
);
Parameter
mode_val
Ziel der Fehlermeldungen.
Rückgabewert
Gibt die alte Einstellung oder -1 zurück, wenn ein Fehler auftritt.
Hinweise
Steuert die Fehlerausgabesenke durch Festlegen des Werts von __error_mode
. Sie können z. B. die Ausgabe in einen Standardfehler umleiten oder die MessageBox
-API verwenden.
Der Parameter mode_val
kann auf einen der folgenden Werte festgelegt werden:
Wert | Beschreibung |
---|---|
_OUT_TO_DEFAULT |
Fehlersenke wird durch __app_type bestimmt. |
_OUT_TO_STDERR |
Fehlersenke ist ein Standardfehler. |
_OUT_TO_MSGBOX |
Fehlersenke ist ein Meldungsfeld. |
_REPORT_ERRMODE |
Melden Sie den aktuellen __error_mode -Wert. |
Wenn ein Wert außer den aufgelisteten übergeben wird, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, setzt _set_error_mode
errno
auf EINVAL
und gibt -1 zurück.
Wenn sie mit einer assert
verwendet wird, zeigt die Anweisung an, _set_error_mode
die im Dialogfeld fehlgeschlagen ist, und bietet Ihnen die Möglichkeit, die Schaltfläche "Ignorieren " auszuwählen, damit Sie das Programm weiterhin ausführen können.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_set_error_mode |
<stdlib.h> |
Beispiel
// crt_set_error_mode.c
// compile with: /c
#include <stdlib.h>
#include <assert.h>
int main()
{
_set_error_mode(_OUT_TO_STDERR);
assert(2+2==5);
}
Assertion failed: 2+2==5, file crt_set_error_mode.c, line 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.