더북(TheBook)

간헐적으로 발생하는 예외 처리하기

프로그램을 컴파일한 후 실행합니다. 이때 런타임할 경우 try 절에서 발생한 예외를 catch 절에서 처리하는 내용을 살펴보겠습니다. 다음 프로그램은 DateTime.Now.Second API를 사용하여 현재 프로그램을 실행하는 시점의 초를 구해 옵니다. 구한 값이 짝수이면 (now % 2) 코드 부분이 0으로 되어 2 / 0; 형태가 됩니다. 모든 수는 0으로 나눌 수 없기에 이 부분에서 에러가 발생합니다. 에러가 발생하면 catch 절이 실행되고 프로그램이 정상적으로 종료됩니다. 구한 초가 홀수라면 정상적으로 메시지가 출력되고, 프로그램도 정상적으로 종료됩니다.

간헐적으로 발생하는 예외 처리: TryCatchDemo.cs

using System;

class TryCatchDemo
{
    static void Main()
    {
        try
        {
            int now = DateTime.Now.Second;
            Console.WriteLine($"[0] 현재 초 : {now}");
            //실행 시간이 짝수이면 0으로 나누기에 에러 발생
            int result = 2 / (now % 2);
            Console.WriteLine("[1] 홀수 초에서는 정상 처리");
        }
        catch
        {
            Console.WriteLine("[2] 짝수 초에서는 런타임 에러 발생");
        }
    }
}

실행 결과 실행시키는 시점에 초(Second)의 값이 홀수일 때

[0] 현재 초 : 25
[1] 홀수 초에서는 정상 처리

실행 결과 실행시키는 시점에 초의 값이 짝수일 때

[0] 현재 초 : 8
[2] 짝수 초에서는 런타임 에러 발생

이처럼 예외 처리 구문을 사용하면 런타임할 때 발생할지 모르는 예외에서도 예외 처리를 할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.