예외종류 :: 구체적인 예외로 어떤 오류인지 확인하기

2025. 11. 3. 17:53·C#

< 예외 종류 >

이름 / 의미 / 상황

FormatException 형식이 맞지 않는 경우 "abc"를 int.Parse()로 변환할 때
ArgumentException 잘못된 인자가 전달됨 메서드에 잘못된 값 전달
ArgumentNullException null이 전달됨 null을 허용하지 않는 메서드에 null 전달
ArgumentOutOfRangeException 범위를 벗어난 값 전달 리스트 인덱스가 0~9인데 10을 접근
IndexOutOfRangeException 배열/리스트 인덱스 범위 초과 배열 길이보다 큰 인덱스 접근
NullReferenceException null 참조 시 null 객체의 메서드 호출
InvalidOperationException 잘못된 상태에서 메서드 호출 이미 종료된 스트림에 쓰기 시도
DivideByZeroException 0으로 나눌 때 int x = 10 / 0;
FileNotFoundException 파일을 찾을 수 없음 존재하지 않는 파일 열기
IOException 입출력 오류 파일 읽기/쓰기 중 문제 발생
OutOfMemoryException 메모리 부족 매우 큰 배열 생성 시
StackOverflowException 스택 오버플로우 재귀 호출이 끝없이 반복될 때
NotImplementedException 미구현 메서드 호출 TODO로 남긴 메서드 호출
try
{
    int age = int.Parse(txtAge.Text);
}
catch (FormatException)
{
    MessageBox.Show("나이는 숫자로 입력해야 합니다.");
}
catch (NullReferenceException)
{
    MessageBox.Show("입력창이 비어 있습니다.");
}
catch (Exception ex)
{
    MessageBox.Show("예상치 못한 오류: " + ex.Message);
}

 

-

 

* 예외 계층 구조

System.Object
   └─ System.Exception
       ├─ System.SystemException
       │     ├─ System.ArgumentException
       │     │     ├─ System.ArgumentNullException
       │     │     ├─ System.ArgumentOutOfRangeException
       │     ├─ System.FormatException
       │     ├─ System.IndexOutOfRangeException
       │     ├─ System.NullReferenceException
       │     ├─ System.InvalidOperationException
       │     └─ System.DivideByZeroException
       └─ System.ApplicationException

< 예외정보를 담는 변수 >

발생한 예외의 내용을 자세히 알기 위해 사용하는 변수

 

catch (Exception) 모든 예외를 잡지만 예외 정보는 사용 안 함
catch (Exception ex) 예외를 잡고, 그 정보를 ex 변수로 활용 가능
ex.Message 오류 메시지
ex.StackTrace 어디서 오류가 났는지
ex.GetType() 오류의 종류
try
{
    int n = int.Parse("abc");
}
catch (Exception ex)
{
    // 1️⃣ 기본 메시지
    MessageBox.Show("오류 메시지: " + ex.Message);

    // 2️⃣ 예외 타입 확인
    Console.WriteLine("예외 타입: " + ex.GetType().Name);

    // 3️⃣ 어디서 오류가 났는지 추적
    Console.WriteLine("발생 위치: " + ex.StackTrace);
}

'C#' 카테고리의 다른 글

학생 조회 프로그램 - 함수 설명 (기능명세서)  (0) 2025.11.04
학생 조회 프로그램  (0) 2025.11.03
Auto-Property  (0) 2025.11.03
C# 클래스 만들기  (0) 2025.11.03
반복문과 제어  (0) 2025.11.03
'C#' 카테고리의 다른 글
  • 학생 조회 프로그램 - 함수 설명 (기능명세서)
  • 학생 조회 프로그램
  • Auto-Property
  • C# 클래스 만들기
joo_coding
joo_coding
2025.02.18~
  • joo_coding
    주코딩일지
    joo_coding
  • 전체
    오늘
    어제
    • 분류 전체보기 (219)
      • 일지 (19)
      • 계획표 (7)
      • 프로젝트 (6)
      • C언어 (35)
        • 연습장 (12)
      • C++ (3)
      • C# (34)
      • Python (28)
        • 연습장 (11)
      • TCP IP (4)
      • DB (2)
      • ubuntu (1)
      • Git (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    c언어 #vscode #gcc #윈도우 #c언어윈도우 #gcc윈도우 #vscode윈도우 #c #c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
joo_coding
예외종류 :: 구체적인 예외로 어떤 오류인지 확인하기
상단으로

티스토리툴바