finally

CLR 예외 처리는 절 및 catch 절 외에 try 절을 finally 지원합니다. 의미 체계는 SEH(구조적 예외 처리)의 블록과 동일합니다 __finally . 블록은 __finally A try 또는 catch 블록을 따를 수 있습니다.

설명

블록의 목적은 예외가 finally 발생한 후 남은 모든 리소스를 클린 것입니다. 예외가 finally throw되지 않았더라도 블록은 항상 실행됩니다. 블록은 catch 연결된 블록 내에서 관리되는 예외가 throw되는 try 경우에만 실행됩니다.

finally는 상황에 맞는 키워드(keyword). 자세한 내용은 상황에 맞는 키워드를 참조하세요.

예시

다음 예제에서는 간단한 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

참고 항목

예외 처리