Nakonec
Kromě try a catch klauzule, podporuje zpracování výjimek modulu CLR finally klauzule.Sémantika totožné s __finally blok do strukturované výjimky (SEH) zpracování.A __finally bloku můžete sledovat try nebo catch blok.
Poznámky
Účelem finally blok je vyčistit všechny prostředky ponechány po došlo k výjimce.Všimněte si, že finally blok je vždy spuštěn, i když byla vyvolána žádná výjimka.catch Bloku se spustí pouze pokud spravované výjimce v rámci přidruženého try blok.
Klíčové slovo finally je slovo citlivé na kontext; další informace naleznete v tématu Kontextově závislá klíčová slova (rozšíření komponent C++).
Příklad
Následující příklad ukazuje jednoduchý finally blok:
// 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" );
}
}