및 절 외에도 try catch 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). __finally 블록은 또는 블록 뒤에 올 수 있습니다 try catch .A __finally block can follow a try or catch block.


블록의 목적은 finally 예외가 발생 한 후 남은 리소스를 정리 하는 것입니다.The purpose of the finally block is to clean up any resources left after the exception occurred. finally 예외가 throw 되지 않은 경우에도 블록은 항상 실행 됩니다.Note that the finally block is always executed, even if no exception was thrown. catch 블록은 연결 된 블록 내에서 관리 되는 예외가 throw 되는 경우에만 실행 됩니다 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.


다음 예제에서는 간단한 블록을 보여 줍니다 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 {
   catch ( MyException^ e ) {
      Console::WriteLine(  "in catch" );
      Console::WriteLine( e->GetType() );
   finally {
      Console::WriteLine(  "in finally" );
in catch
in finally

참고 항목See also

예외 처리Exception Handling