Checked Exception vs Unchecked Exception

yeriimii·2025년 3월 24일

자바 오류 처리 / 예외 처리에 대해서 설명하겠습니다.

1. 프로그램 오류(에러)란?

: 컴퓨터 처리 시 예상하지 못한 결과가 발생하거나 원하는 결과를 얻지 못해 비정상적으로 종료되는 것

  • 컴파일 에러 : 컴파일 시에 잘못된 명령어(코드)를 발견하여 알려주는 오류
  • 런타임 에러 : 프로그램 동작 중에 잘못된 데이터를 가지게 되어 잘못된 처리를 진행하려 할 때 알려주는 오류
  • 논리적 에러 : 런타임 에러를 발생시키지는 않아 실행은 되지만, 논리적으로 틀린 결과를 알려주는 오류

2. 에러 vs 예외

  • 에러 : 프로그램 코드에 의해서 해결할 수 없는 오류
  • 예외 : 프로그램 코드에 의해서 해결할 수 있는 오류

3. 클래스 계층 구조

: 모든 조상은 Object 클래스

1) Checked Exception

  • Exception 클래스를 상속
    (RuntimeException 상속x)
  • 컴파일 타임에 체크하므로,
    try-catch 처리 / throws 선언 필수
  • 주로 네트워크, DB와 같은 외부 환경과 관련된 예외 발생
  • 예외 종류
    : IOException,
    SQLException

2) Unchecked Exception

  • 프로그램 동작(런타임) 중에 발생하는 런타임 에러
  • 주로 로직 오류로 개발자의 실수로 인해 발생하므로, try-catch 필수x
  • RuntimeException 클래스를 상속

3) Runtime Exception

  • Unchecked Exception의 하위 종류
    => RuntimeException 을 상속하는 모든 예외 포함
  • 예외 종류
    : NullPointerException,
    ArrayIndexOutOfBoundsException,
    IllegalArgumentException,
    ArithmeticException,
    ClassCastException

💡RuntimeException이 필수 처리 예외가 아닌 이유💡
: 프로그래머에 의한 실수로 발생하는 것들은 강제하지 않는다.
하지만, 예외처리가 필요한 경우에는 코드에 예외처리를 포함시켜야 한다.


참고 : https://velog.io/@gjwjdghk123/Checked-Exception-Unchecked-Exception-그리고-예외-처리

profile
칠전팔기 성장기

0개의 댓글