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