finallyfinally

ほかにtrycatch句、CLR の例外処理のサポート、finally句。In addition to try and catch clauses, CLR exception handling supports a finally clause. セマンティクスは次のと同じ、__finallyで構造化例外処理 (SEH) をブロックします。The semantics are identical to the __finally block in structured exception handling (SEH). A__finally次のブロックをtryまたはcatchブロックします。A __finally block can follow a try or catch block.

RemarksRemarks

目的、finallyブロックは、例外が発生した後に残されているリソースをクリーンアップします。The purpose of the finally block is to clean up any resources left after the exception occurred. なお、finally例外がスローされなかった場合でも、ブロックは実行常にされます。Note that the finally block is always executed, even if no exception was thrown. catchマネージ例外がスローされた場合にのみ、ブロックが実行に関連付けられているtryブロックします。The catch block is only executed if a managed exception is thrown within the associated try block.

finally 状況依存のキーワードは、します。参照してください状況依存のキーワード詳細についてはします。finally is a context-sensitive keyword; see Context-Sensitive Keywords for more information.

Example

次の例では、単純なfinallyブロック。The following example demonstrates a simple finally block:

// 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

関連項目See also

例外処理Exception Handling