Anzeigen: Delphi
C++
Anzeigeeinstellungen
__finally
Aus RAD Studio XE2
Nach oben zu Schlüsselwörter alphabetisch - Index
Kategorie
Anweisungen, Schlüsselwort-Erweiterungen
Syntax
__finally {zusammengesetzte anweisung}
Beschreibung
Das Schlüsselwort __finally spezifiziert eine Aktion, die unabhängig davon durchgeführt werden soll, wie der Programmablauf durch das vorangehende __try-Konstrukt endet.
Beispiel
Das folgende Code-Fragment zeigt die Verwendung des try/__finally-Konstrukts:
#include <stdio.h>
#include <string.h>
#include <windows.h>
class Exception
{
public:
Exception(char* s = "Unbekannt"){what = strdup(s); }
Exception(const Exception& e ) {what = strdup(e.what); }
~Exception() {free(what); }
char* msg() const {return what; }
private:
char* what;
};
int main()
{
float e, f, g;
try
{
try
{
f = 1.0;
g = 0.0;
try
{
puts("Weitere Exception:");
e = f / g;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
puts("Eine C-basierte Exception gefunden.");
throw(Exception("Hardware-Fehler: Division durch 0"));
}
}
catch(const Exception& e)
{
printf("C++-Exception gefunden: %s :\n", e.msg());
}
}
__finally
{
puts("In C++ ist __finally auch zulässig!");
}
return e;
}
Das obige Programm erzeugt die folgende Ausgabe:
Weitere Exception:
Eine C-basierte Exception gefunden.
C++-Exception gefunden[Hardware-Fehler: Division durch 0]
In C++ ist __finally auch zulässig!