schließlich
Neben try und catch CLR-Ausnahmebehandlung Klauseln unterstützt eine finally-Klausel. Die Semantik entspricht dem __finally-Block in der strukturierten Ausnahmebehandlung (SEH) identisch. Ein __finally-Block kann einem try oder catch-Block folgen.
Hinweise
Der Zweck des finally-Blocks ist, alle Ressourcen zu bereinigen, die nach der Ausnahme verbleiben, aufgetreten ist. Beachten Sie, dass der finally-Block wird immer ausgeführt, wenn keine Ausnahme ausgelöst wurde. Der catch-Block wird nur ausgeführt, wenn eine verwaltete Ausnahme innerhalb des Blocks zugeordneten try ausgelöst wird.
finally ist ein kontextbezogenes Schlüsselwort. Weitere Informationen siehe Kontextbezogene Schlüsselwörter (Komponentenerweiterungen für C++).
Beispiel
Das folgende Beispiel zeigt einen einfachen finally-Block:
// keyword__finally.cpp
// compile with: /clr
using namespace System;
ref class MyException: public System::Exception{};
void ThrowMyException() {
throw gcnew MyException;
}
int main() {
try {
ThrowMyException();
}
catch ( MyException^ e ) {
Console::WriteLine( "in catch" );
Console::WriteLine( e->GetType() );
}
finally {
Console::WriteLine( "in finally" );
}
}