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 예외
참고 항목
작업
개념
참조
The try, catch, and throw Statements