Condividi tramite


infine

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

Note

Lo scopo del blocco di finally è per pulire eventuali risorse viene mantenuto dopo l'eccezione si è verificato. Si noti che il blocco di finally viene eseguita sempre, anche se non è stata generata un'eccezione. Il blocco di catch viene eseguito solo se viene generata un'eccezione gestita all'interno del blocco collegato di try.

finally è una parola chiave sensibile al contesto, vedere la pagina Parole chiave sensibili al contesto (Estensioni del componente C++) per ulteriori informazioni.

Esempio

Nell'esempio seguente viene illustrato un semplice blocco di 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" );
   }
}
  

Vedere anche

Altre risorse

Gestione delle eccezioni (Estensioni del componente C++)