set_unexpected (CRT)
Installiert eigene von unexpected aufgerufen werden, Beendigungsfunktion.
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
Parameter
- unexpFunction
Zeiger auf eine Funktion, die Sie schreiben, um die Funktion unexpected zu ersetzen.
Rückgabewert
Gibt einen Zeiger zur vorherigen Beendigungsfunktion zurück, die von _set_unexpected registriert wird, dass die vorherige Funktion später wiederhergestellt werden kann. Wenn keine vorherige Funktion festgelegt wurde, wird der Rückgabewert verwendet werden, um das Standardverhalten wiederherzustellen; Dieser Wert kann NULL.
Hinweise
Die set_unexpected-Funktion installiert unexpFunction als Funktion, die durch unexpected aufgerufen wird. unexpected wird nicht in der aktuellen C++-Ausnahmebehandlungsimplementierung verwendet. Der Typ unexpected_function wird in EH.H als Zeiger zu einer unerwarteten benutzerdefinierten Funktion, unexpFunction definiert, die void zurückgibt. Die benutzerdefinierte unexpFunction-Funktion sollte nicht an dessen Aufrufer zurückzukehren.
typedef void ( *unexpected_function )( );
Standardmäßig unexpected Aufrufe terminate. Sie können dieses Standardverhalten ändern, indem Sie die eigene Beendigungsfunktion schreiben und set_unexpected mit dem Namen der Funktion als Argument aufrufen. unexpected ruft die letzte Funktion angegeben set_unexpected als Argument auf.
Anders als benutzerdefinierte Beendigungsfunktion, die bei einem Aufruf von set_terminate installiert ist, kann eine Ausnahme unexpFunction ausgelöst werden.
In einer Multithreadumgebung werden unerwartete Funktionen separat für jeden Thread beibehalten. Anforderungen der neue Threads, eine eigenen unerwartete Funktion zu installieren. Daher ist jeder Thread verantwortlich für seine eigene unerwartete Behandlung.
In der aktuellen Implementierung der C++-Ausnahmebehandlung Ausnahmebehandlung, ruft unexpected standardmäßig terminate auf und wird nicht von der Ausnahmebehandlungslaufzeitbibliothek aufgerufen. Es gibt keinen besonderen Vorteil dem Aufrufen von unexpected und nicht terminate.
Es gibt einen einzelnen set_unexpected-Handler für alle dynamisch verknüpfte DLLs oder EXE-Dateien; wenn Sie set_unexpected aufrufen, wird der Handler ersetzt durch andere möglicherweise, das oder ersetzen Sie einen Handler, der von einer anderen DLL oder EXE-Datei festgelegt wird.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
set_unexpected |
<eh.h> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.