finally블록은try블록에서 할당된 리소스를 정리할 때 유용합니다. try 블록이 종료되는 방법에 관계 없이 항상 제어가 finally 블록으로 전달됩니다. 이 문은 다음 형식을 사용합니다.
trytry-blockfinallyfinally-block
다음은 각 문자에 대한 설명입니다.
try-block : 예외가 발생할 수 있는 코드 세그먼트를 포함합니다.
finally-block : 예외 처리기와 정리 코드를 포함합니다.
설명
catch가 문 블록에서 발생하는 예외를 처리하는 반면finally는 선행하는try블록의 종료 방법에 관계 없이 코드의 문 블록이 반드시 실행되도록 하는 데 사용됩니다.
예제
// try-finally
using System;
public class TestTryFinally
{
public 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);
}
}
}
예외가 catch되었지만finally블록에 포함된 출력 문은 다음과 같이 여전히 실행됩니다.
i = 123