Megosztás:


végül

A CLR-kivételkezelés a try záradékok mellett a catch záradékokat is támogatja finally . A szemantikák megegyeznek a __finally strukturált kivételkezelésben (SEH) lévő blokkéval. A __finally blokk követhet egy try vagy catch blokkot.

Megjegyzések

A blokk célja, finally hogy a kivétel bekövetkezése után maradt erőforrásokat megtisztítsa. Vegye figyelembe, hogy a finally blokk mindig végrehajtásra kerül, még akkor is, ha nem történt kivétel. A catch blokk csak akkor lesz végrehajtva, ha a társított try blokkon belül egy felügyelt kivétel van kivédve.

finally környezetfüggő kulcsszó; további információért tekintse meg Context-Sensitive kulcsszavakat .

példa

Az alábbi példa egy egyszerű finally blokkot mutat be:

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

Lásd még

Kivételkezelés