Java 에러 (Error)와 익셉션 (Exception)

fever·2024년 7월 26일

Java 기초

목록 보기
10/10

에러 (Error)

일반적으로 프로그램의 실행 환경에서 발생하는 심각한 문제로 개발자가 직접 제어하거나 복구할 수 없는 경우. 예를 들어, JVM 메모리가 부족하거나 시스템에 문제가 생겼을 때 발생한다.
java.lang.Error의 클래스를 상속하며 Throwable의 하위클래스.

주요 에러예시

  • OutOfMemoryError: JVM의 힙 메모리가 부족할 때 발생
  • StackOverflowError: 스택 메모리가 다 소모되었을 때 발생
  • NoClassDefFoundError: 필요한 클래스 파일을 찾을 수 없을 때 발생

익셉션 (Exception)

프로그램의 논리적인 흐름에서 발생할 수 있는 문제로 개발자가 처리하여 프로그램이 비정상 종료되지 않도록 할 수 있는 문제들. 예를 들어, 파일을 찾을 수 없거나 네트워크 연결에 실패할 때 발생. java.lang.Exception 클래스를 상속하며, Throwable 클래스의 하위 클래스.

익셉션의 유형

1. Checked Exception

컴파일 시점에서 예외 처리 코드가 있는지 확인되는 예외로 반드시 try-catch 블록으로 처리하거나 throws 키워드를 사용해 메서드 시그니처에 명시해야하는 익셉션.

Checked Exception 예시

  • IOException: 입출력 작업 중 오류가 발생할 때.
  • SQLException: 데이터베이스 작업 중 오류가 발생할 때.
  • ClassNotFoundException: 클래스 파일을 찾을 수 없을 때.

2. Unchecked Exception

런타임 시점에서 발생하는 예외로, 컴파일 시점에 예외 처리 여부를 확인하지 않음. 개발자가 선택적으로 처리할 수 있으며, 예외가 발생하면 프로그램이 비정상 종료될 수 있다.

Unchecked Exception 예시
RuntimeException를 상속하는 예외들

  • NullPointerException: null 객체를 참조할 때.
  • ArrayIndexOutOfBoundsException: 배열의 잘못된 인덱스를 접근할 때.
  • ArithmeticException: 잘못된 산술 연산을 수행할 때 (예: 0으로 나누기).
profile
선명한 삶을 살기 위하여

0개의 댓글