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 (SEH) strutturata.Un blocco di __finally può seguire un blocco di catch o di try .
Note
Lo scopo del blocco di finally è per pulire eventuali risorse predefinite dopo l'eccezione si è verificato.Si noti che il blocco di finally viene eseguita sempre, anche se alcuna eccezione è stata generata un'eccezione.Il blocco di catch viene eseguito solo se viene generata un'eccezione gestita all'interno del blocco associato di try .
finally è una parola chiave sensibile al contesto, vedere 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" );
}
}