finally

Oltre alle try clausole e catch , la gestione delle eccezioni CLR supporta una finally clausola . La semantica è identica al __finally blocco nella gestione delle eccezioni strutturata (SEH). Un __finally blocco può seguire un try blocco o catch .

Osservazioni:

Lo scopo del finally blocco è pulire tutte le risorse lasciate dopo che si è verificata l'eccezione. Si noti che il finally blocco viene sempre eseguito, anche se non è stata generata alcuna eccezione. Il catch blocco viene eseguito solo se viene generata un'eccezione gestita all'interno del blocco associato try .

finally è una parola chiave sensibile al contesto; Per altre informazioni, vedere Parole chiave sensibili al contesto.

Esempio

L'esempio seguente illustra un blocco semplice finally :

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

Vedi anche

Gestione delle eccezioni