finally

除了 trycatch 子句之外,CLR 例外狀況處理也支援 finally 子句。 語意與 __finally 結構化例外狀況處理中的區塊相同(SEH)。 __finally區塊可以追蹤 trycatch 區塊。

備註

區塊的目的是 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

另請參閱

例外狀況處理