다음을 통해 공유


try-finally(C# 참조)

업데이트: 2007년 11월

finally 블록은 try 블록에서 할당된 리소스를 정리하고 예외 발생 여부에 관계없이 항상 실행해야 하는 코드를 실행하는 데 유용합니다. try 블록이 종료되는 방법에 관계없이 항상 제어가 finally 블록으로 전달됩니다.

catch는 문 블록에서 발생하는 예외를 처리하는 데 사용되지만 finally는 앞에 나오는 try 블록의 종료 방법에 관계없이 코드의 문 블록이 반드시 실행되도록 하는 데 사용됩니다.

예제

아래 예제에는 예외를 발생시키는 잘못된 변환문이 하나 있습니다. 프로그램을 실행하면 런타임 오류 메시지가 나타나지만 finally 절이 계속 실행되어 출력이 표시됩니다.

public class ThrowTest
{
    static void Main()
    {
        int i = 123;
        string s = "Some string";
        object o = s;

        try
        {
            // Invalid conversion; o contains a string not an int
            i = (int)o;
        }
        finally
        {
            Console.Write("i = {0}", i);
        }
    }
}

위 예제에서는 System.InvalidCastException이 throw됩니다.

예외가 catch되었지만 finally 블록에 포함된 출력 문은 다음과 같이 여전히 실행됩니다.

i = 123

finally에 대한 자세한 내용은 try-catch-finally를 참조하십시오.

C#은 try-finally 문과 정확히 같은 기능을 수행하면서 더 간편한 구문인 using 문도 제공합니다.

C# 언어 사양

자세한 내용은 C# 언어 사양의 다음 단원을 참조하십시오.

  • 5.3.3.14 Try-finally 문

  • 8.11 try 문

  • 16 예외

참고 항목

작업

방법: 명시적으로 예외 Throw

개념

C# 프로그래밍 가이드

참조

C# 키워드

The try, catch, and throw Statements

예외 처리문(C# 참조)

throw(C# 참조)

try-catch(C# 참조)

기타 리소스

C# 참조