C#/C#

26. 예외 처리(Exception)

Jya_o_o 2023. 10. 11. 00:24
예외

예외란 실행 중 발생하는 오류이다.

 

try: 예외가 발생할 수 있는 코드를 시도한다.

catch: 예외가 발생했을 때 발견하고 처리한다.

finally: 예외가 발생하든 안하든 상관없이 항상 실행한다.

 

int x;
int y;
double result;

try
{
    Console.Write("숫자1: ");
    x = Convert.ToInt32(Console.ReadLine());

    Console.Write("숫자2: ");
    y = Convert.ToInt32(Console.ReadLine());

    result = x / y;

    Console.WriteLine("결과: " + result);
}
catch (FormatException e)
{
    Console.WriteLine("숫자만 입력해주세요.");
}
catch (DivideByZeroException e)
{
    Console.WriteLine("0으로 나눌 수 없습니다.");
}
catch (Exception e)
{
    Console.WriteLine("예기치 못한 오류가 발생헀습니다.");
}

catch문은 여러 개를 추가할 수 있다. 예상치 못한 오류가 발생할 경우를 대비하기 위해 Exception e 예외를 마지막에 추가한다.

 

finally는 예외가 발생했는지 여부에 상관없이 실행되기 때문에 보통 try-catch문 뒤에 실행되도록 한다.

double x;
double y;
double result;

try
{
    Console.Write("숫자1: ");
    x = Convert.ToInt32(Console.ReadLine());

    Console.Write("숫자2: ");
    y = Convert.ToInt32(Console.ReadLine());

    result = x / y;

    Console.WriteLine("결과: " + result);
}
catch (FormatException e)
{
    Console.WriteLine("숫자만 입력해주세요.");
}
catch (DivideByZeroException e)
{
    Console.WriteLine("0으로 나눌 수 없습니다.");
}
catch (Exception e)
{
    Console.WriteLine("예기치 못한 오류가 발생헀습니다.");
}
finally
{
    Console.WriteLine("실행이 완료되었습니다.");
}

finally는 일반적으로 리셋하기 위해 열려있는 파일을 모두 닫게 만들 때 사용한다.