na koniec
Oprócz try i catch klauzul, obsługi obsługuje wyjątków CLR finally klauzuli.Semantyka są identyczne z __finally zablokować w strukturalnej (SEH) obsługi wyjątków.A __finally można wykonać blok try lub catch bloku.
Uwagi
Celem finally bloku jest oczyszczenie żadnych zasobów po wystąpił wyjątek.Należy zauważyć, że finally bloku jest zawsze wykonywana, nawet jeśli nie wystąpił wyjątek.catch Bloku jest wykonywany tylko wtedy, jeśli zarządzanych wyjątek w skojarzonym try bloku.
finallyto słowo kluczowe kontekstowa; zobacz Kontekstowe słowa kluczowe (C++ Component Extensions) Aby uzyskać więcej informacji.
Przykład
Poniższy przykład ilustruje prosty finally bloku:
// 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" );
}
}