본문 바로가기
Daily Dev Q&A 정리 템플릿

25.11.28 자바의 예외 처리(Exception)에 대하여

by teg0 2025. 11. 30.

프로그램을 실행하면, 에러(Error)와 예외(Exception)를 콘솔창에서 확인할 수 있다.

자바에서는 예외가 발생하면 우리가 의도적으로 구현한 프로그램이 제대로 동작하지 않거나 비정상적으로 종료된다.

이러한 에러와 예외들이 발생했을 때, 처리하는 방법이 예외처리이다. 또한, 자바는 예외를 throw로 직접 발생시킬 수 있다.

 

에러(Error)와 예외(Exception)

에러(Error)는 시스템 레벨에서 발생하는 심각한 오류로 개발자가 처리할 수 없는 문제 등이  JVM에서 발생한다.

예외(Exception)는 프로그램에서 발행하는 예외적인 상황으로 개발자가 처리할 수 있는 문제다.

 

예외 처리(Exception)

예외는 크게 2가지로 나뉘며, Checked 예외와 Unchecked 예외가 있다.

 

Checked 예외

예외 중 RuntimeException의 하위 클래스가 아닌 클래스들이 Checked 예외라고 볼 수 있다. 컴파일 시점에서 반드시 처리해야 하는 예외로, 컴파일러가 이 예외를 처리하도록 실행을 멈추며, throws 키워드를 통해 예외 발생을 다른 곳으로 넘기거나, try-catch 문으로 예외를 처리해야 한다.

 

예를 들면 FileNotFoundException은 존재하지 않은 파일을 입력했을 때 발생하고, ClassNotFoundException은 클래스 이름이 오타가 있어 찾지 못할 경우 발생한다.

 

Unchecked 예외

실행 중에 발생하는 예외인 RuntimeException의 하위 클래스를 의미하며, Checked와 달리 강제적으로 처리할 필요가 없다.

 

예를 들면 ArrayIndexOutOfBoundsException은 배열의 범위가 넘어 값을 담을 수 없을 때 발생하고, NullPointerException은 값이 null이 참조변수를 참조할 경우 발생한다.

 

면접 답변식 요약

자바의 예외는 프로그램 실행 중 개발자의 실수로 예기치 못한 상황이 발생했을 때를 말합니다. 예외는 크게 2가지로,  Checked 예외와 Unchecked 예외가 있습니다. Checked 예외는 컴파일 시점에 반드시 처리해야 하며 try-catch 또는 throws로 예외를 전달해야 합니다. Unchecked 예외는 런타임에 발생하며 처리 의무가 없고 주로 개발자의 실수로 발생합니다.