간헐적으로 발생하는 예외 처리하기
프로그램을 컴파일한 후 실행합니다. 이때 런타임할 경우 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] 짝수 초에서는 런타임 에러 발생
이처럼 예외 처리 구문을 사용하면 런타임할 때 발생할지 모르는 예외에서도 예외 처리를 할 수 있습니다.