最後
除了 try 和 catch 子句外, CLR 例外狀況處理支援 finally 子句。 語意與處理 (SEH) 的結構化例外狀況的 __finally 區塊是相同的。 __finally 區塊可以跟隨在 try 或 catch 區塊。
備註
finally 區塊的目的是要清除在例外狀況後所有資源時發生。 請注意 finally 區塊永遠執行,因此,即使沒有擲回任何例外狀況。 如果 Managed 例外狀況相關聯的 try 區塊內,則會擲回 catch 區塊只執行。
finally 為內容相關性關鍵字。如需詳細資訊,請參閱視內容而有所區別的關鍵字 (C++ 元件擴充功能)。
範例
下列範例示範簡單的 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" );
}
}