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