Freigeben über


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 zu bereinigen, die nach dem Auftreten der Ausnahme verbleiben. 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 ein kontextabhängiges Schlüsselwort; weitere Informationen finden Sie unter Kontextsensible 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

Siehe auch

Ausnahmebehandlung