finally

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

설명

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

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

참조

예외 처리