finally
Oprócz try
klauzul i catch
obsługa wyjątków CLR obsługuje klauzulę finally
. Semantyka jest identyczna z blokiem __finally
w obsłudze wyjątków strukturalnych (SEH). Blok __finally
może podążać za blokiem try
lub catch
.
Uwagi
finally
Celem bloku jest wyczyszczenie wszelkich zasobów pozostałych po wystąpieniu wyjątku. Należy pamiętać, że finally
blok jest zawsze wykonywany, nawet jeśli nie zgłoszono wyjątku. Blok catch
jest wykonywany tylko wtedy, gdy w skojarzonym try
bloku jest zgłaszany wyjątek zarządzany.
finally
jest kontekstowym słowem kluczowym; Aby uzyskać więcej informacji, zobacz Kontekstowe słowa kluczowe .
Przykład
W poniższym przykładzie pokazano prosty 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
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla