Udostępnij za pośrednictwem


finally

Oprócz try klauzul i catch obsługa wyjątków CLR obsługuje klauzulę finally . Semantyka jest identyczna z blokiem __finally w obsłudze wyjątków strukturalnych (SEH). Blok __finally może podążać za blokiem try lub catch .

Uwagi

finally Celem bloku jest wyczyszczenie wszelkich zasobów pozostałych po wystąpieniu wyjątku. Należy pamiętać, że finally blok jest zawsze wykonywany, nawet jeśli nie zgłoszono wyjątku. Blok catch jest wykonywany tylko wtedy, gdy w skojarzonym try bloku jest zgłaszany wyjątek zarządzany.

finally jest kontekstowym słowem kluczowym; Aby uzyskać więcej informacji, zobacz Kontekstowe słowa kluczowe .

Przykład

W poniższym przykładzie pokazano prosty finally blok:

// 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

Zobacz też

Obsługa wyjątków