次の方法で共有


finally

try と catch の句に加えて、 CLR 例外処理は finally の句をサポートします。セマンティクスは構造化例外処理 (SEH) の __finally ブロックと同じです。__finally ブロックは try または catch ブロックに進むことができます。

解説

finally ブロック オブジェクトは、発生した例外の後に残っているリソースをクリーンアップすることです。例外が投げられなく場合でも finally ブロックが常に実行されることに注意してください。catch ブロックはマネージ例外が try の関連付けられたブロック内でスローされる場合にのみ実行されます。

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" );
   }
}
  

参照

その他の技術情報

例外処理 (C++ コンポーネント拡張)