finally
除了 try
和 catch
子句之外,CLR 例外狀況處理也支援 finally
子句。 語意與 __finally
結構化例外狀況處理中的區塊相同(SEH)。 __finally
區塊可以追蹤 try
或 catch
區塊。
備註
區塊的目的是 finally
清除例外狀況發生後留下的任何資源。 請注意,即使未擲回任何例外狀況,仍 finally
會執行 區塊。 catch
只有在相關聯 try
區塊內擲回 Managed 例外狀況時,才會執行 區塊。
finally
是上下文相關關鍵字;如需詳細資訊, 請參閱 上下文相關關鍵字。
範例
下列範例示範簡單的 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" );
}
}
in catch
MyException
in finally