finally
Zusätzlich zu try
und catch
Klauseln unterstützt die CLR-Ausnahmebehandlung eine finally
Klausel. Die Semantik ist identisch mit dem Block in der __finally
strukturierten Ausnahmebehandlung (SEH). Ein __finally
Block kann einem oder catch
einem try
Block folgen.
Hinweise
Der Zweck des finally
Blocks besteht darin, alle Ressourcen nach dem Auftreten der Ausnahme zu sauber. Beachten Sie, dass der finally
Block immer ausgeführt wird, auch wenn keine Ausnahme ausgelöst wurde. Der catch
Block wird nur ausgeführt, wenn eine verwaltete Ausnahme innerhalb des zugeordneten try
Blocks ausgelöst wird.
finally
ist eine kontextabhängige Schlüsselwort (keyword); weitere Informationen finden Sie unter "Kontextbezogene Schlüsselwörter".
Beispiel
Im folgenden Beispiel wird ein einfacher finally
Block veranschaulicht:
// 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" );
}
}
in catch
MyException
in finally