상위 목록: 하위 목록: 작성 날짜: 읽는 데 10 분 소요

예외(Exception)

예외(Exception)란 프로그램을 실행할 때 나타나는 오류를 나타냅니다.

오류가 발생할 경우 프로그램이 강제로 중단되는데 이를 방지하기 위해 사용합니다.


세부 코드

try
{
    코드 1;
    코드 2;
    ...
    코드 n;   
}
catch ( 예외 )
{
    코드 1;
    코드 2;
    ...
    코드 n;   
}



try 실행

try{}를 이용하여 정상으로 실행될 때 수행할 코드를 작성합니다.


세부 코드

int[] array = new int[3] { 0, 1, 2};

try
{
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine(array[i]);
    }
}

배열의 크기는 3인 반면에, for문은 5회를 실행하여 필연적으로 오류가 발생합니다.

이로 인하여 프로그램이 비정상적으로 종료가 됩니다. 이를 방지하기 위해 try ~ catch를 사용합니다.



catch 예외

catch(){}를 이용하여 오류일 때 실행될 코드를 작성합니다.


세부 코드

int[] array = new int[3] { 0, 1, 2};

try
{
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine(array[i]);
    }
}
catch(IndexOutOfRangeException)
{
    Console.WriteLine("범위 설정 오류");
}

실제 출력 값 : 0 / 1 / 2 / 범위 설정 오류


  • Tip : 오류를 catch 구문으로 보내어 프로그램이 비정상적으로 종료되지 않습니다.

  • Tip : catch{}를 여러개 사용하여 다른 여러 예외에 대하여 대응할 수 있습니다.



finally 정리

finally{}를 이용하여 try~catch가 모두 실행 된 후 최종적으로 실행합니다.


세부 코드

int[] array = new int[3] { 0, 1, 2};

try
{
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine(array[i]);
    }
}
catch(IndexOutOfRangeException)
{
    Console.WriteLine("범위 설정 오류");
}
finally
{
    Console.Write("안전하게 종료");
}

실제 출력 값 : 0 / 1 / 2 / 범위 설정 오류 / 안전하게 종료



throw 던지기

throw는 try{}에서 정상적으로 동작 중 이더라도 예외 구문으로 보낼 수 있습니다.


세부 코드

throw new IndexOutOfRangeException();

IndexOutOfRangeException로 된 catch 구문으로 에러를 보냅니다.



예외 구문

  • Exception : 모든 에러의 최상위 에러, 모든 에러와 호환됩니다.
  • DivideByZeroException : 정수 값 또는 소수 값을 0으로 나누려 할 때
  • IndexOutOfRangeException : 배열 범위 밖의 index를 엑세스 할 때
  • FormatException : 변수의 형식이 맞지 않을 때
  • OverflowException : 오버플로우가 발생할 때


이 외에도 수많은 에러 구문이 있습니다.

그에 따른 에러를 적절하게 처리해 사용합니다.

댓글 남기기