본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 예외처리하기(Exception)

by 공부하는개미 2021. 5. 19.
반응형

아래 글은 C# 예외처리 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

 

📃 참고자료

 

  • C# 교과서(길벗 출판사) - 26단원 예외 처리하기 349 ~ 361페이지

  • 유튜브채널 VisualAcademy [C# 교과서 마스터하기 26. 예외 처리하기(Exception)]

 

 

 

 

https://www.youtube.com/watch?v=C781teBX52U 

 

 

 

예외의 의미

  • 프로그램 실행 도중 발생하는 예상치 못한 오류
    -> 오류(Error) === 예외(Exception)

  • 처리되지 않은 예외는 프로그램의 실행을 중단시키는 원인
    -> 강제종료 => 정상 종료로 처리가 필요

  • 신뢰도 및 안정성 측면에서 매우 중요
    -> 예외 처리(Exception Handling)를 통한 강제 종료 방지

 

 

 

예외(오류)의 종류

 

  1. 문법(컴파일) 오류
  2. 런타임 오류
  3. 알고리즘(논리) 오류

 

 

 

 

1.  문법(컴파일) 오류

 

  • 잘못된 명령어 입력
  • 타이핑의 실수로 발생

▶ 문법 오류를 방지하려면 많은 예제를 접해가면서 프로그래밍의 기초문법을 확실하게 이해해야함

 

 

 

 

2. 런타임 오류

 

  • 런타임 오류는 프로그램 작성 후 실행할 때 발생하는 오류
  • 많은 테스트를 통해서 해결

 

 

 

3. 알고리즘(논리) 오류

 

  • 주어진 문제에 대한 잘못된 해석으로 잘못된 결과를 초래하는 에러를 알고리즘 오류 또는 로직 오류라고 함
  • 문법 오류나 런타임 오류를 쉽게 발견해 낼 수 있지만, 알고리즘 오류는 처리 결과가 틀리게 나왔는데도
    알 수 없는 경우가 많기 때문에 이 알고리즘 오류를 해결하기가 가장 어려움
  • 알고리즘 오류를 해결하기 위해선 코드를 분석 및 많이 만들어 보면서 오류를 찾아내는 능력을 키워야함

 

 

 

 

 

예제코드 (C#교과서 360페이지)

using System;

class ExceptionHandling
{
    static void Main()
    {
        int a = 3;
        int b = 0;

        try
        {
            //[1] b가 0이므로 런타임 에러 발생
            a = a / b;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"예외(에러)가 발생됨: {ex.Message}");
        }
        finally
        {
            Console.WriteLine("try 구문을 정상 종료합니다.");
        }

        try
        {
            //[2] Exception 클래스에 에러 메시지 지정하여 무조건 에러 발생
            throw new Exception("내가 만든 에러");
        }
        catch (Exception e)
        {
            Console.WriteLine($"예외(에러)가 발생됨: {e.Message}");
        }
        finally
        {
            Console.WriteLine("try 구문을 정상 종료합니다.");
        }
    }
}
반응형