Compartilhar via


Por fim

Além dos try e catch cláusulas, exceção CLR tratamento suporta uma finally cláusula.A semântica é idêntica do __finally bloco de exceção estruturada (SEH) de tratamento.A __finally bloco pode seguir um try ou catch bloco.

Comentários

O objetivo do finally bloco é limpar os recursos após a exceção ocorreu.Observe que o finally bloco sempre será executado mesmo se nenhuma exceção foi lançada.O catch bloco somente é executado se uma exceção gerenciada dentro do associado try bloco.

finallyé uma palavra-chave contextual; consulte Palavras-chave Contextuais (Extensões de Componentes C++) para obter mais informações.

Exemplo

O exemplo a seguir demonstra uma simples finally bloco:

// 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" );
   }
}
  

Consulte também

Outros recursos

Tratamento de Exceção (Extensões de Componentes C++)