Compartir a través de


finally

Además de las cláusulas try y catch, el control de excepciones del CLR admite una cláusula finally. La semántica es idéntica al bloque __finally en el control estructurado de excepciones (SEH). Un bloque __finally puede seguir un bloque try o catch.

Comentarios

El propósito del bloque finally es limpiar los recursos que quedan después de que se haya producido la excepción. Tenga en cuenta que el bloque finally siempre se ejecuta, incluso si no se produjo ninguna excepción. El bloque catch solo se ejecuta si se produce una excepción administrada dentro del bloque try asociado.

finally es una palabra clave contextual; para obtener más información, vea Palabras clave contextuales.

Ejemplo

En el siguiente ejemplo se muestra un bloque 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

Consulte también

Control de excepciones