C# 강좌 : 제 20강 - 예외

   

예외 (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 : 오버플로우가 발생할 때


  • Tip : 이 외에도 수많은 에러 구문이 있고 그에 따른 에러를 적절하게 사용하면 됩니다.


도움이 되셨다면 광고 클릭 부탁드립니다.

⤧  Next post C# 강좌 : 제 21강 - 델리게이트 ⤧  Previous post C# 강좌 : 제 19강 - 일반화