finally
Kromě try
klauzulí a catch
klauzulí podporuje zpracování výjimek CLR klauzuli finally
. Sémantika je shodná s blokem __finally
při strukturovaném zpracování výjimek (SEH). __finally
Blok může sledovat try
nebo catch
blokovat.
Poznámky
Účelem finally
bloku je vyčistit všechny prostředky, které zůstaly po výskytu výjimky. Všimněte si, že finally
blok se vždy spustí, i když nebyla vyvolán žádná výjimka. Blok catch
se spustí pouze v případě, že se v přidruženém try
bloku vyvolá spravovaná výjimka.
finally
je klíčové slovo citlivé na kontext; Další informace najdete v tématu Klíčová slova citlivá na kontext.
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" );
}
}
in catch
MyException
in finally