본문 바로가기

내일배움캠프/Today I Learned

[내배캠] 나의 스물세번째 회고록

프로그램 개발을 하다 보면 다양한 오류가 발생할 수 있다. Java에서는 오류가 발생하면 어떤 오류인지를 개발자에게 알려줘서 오류를 처리할 수 있도록 기능을 지원해 준다.

Java에서의 예외는 크게 Error, RuntimeException, OtherException, 3가지의 종류가 존재한다.

이들에 대해서 알아보도록 하자. 먼저 Error이다.

Error는 메모리 부족(OutOfMemoryError), 스택오버플로우(StackOverFlowError)처럼 자바 가상 기계(JVM)나 하드웨어 등 시스템의 문제로 발생하는 것을 의미한다.

즉, 개발자가 처리할 수 있는 영역이 아니기 때문에 Error가 발생하면 프로그램을 종료시키는 것이 보통이다.

다음으로 Exception이다.

Error와 Exception의 차이는 개발자가 프로그램 내에서 처리할 수 있는지에 대한 여부이다. Exception은 Error와 다르게 프로그램 내에서 처리해 줄 수 있다.

즉, 예외가 발생하더라도 프로그램을 비정상 종료시키지 않는다.

Exception은 RuntimeException OtherException으로 나뉜다. 이들을 구분하는 차이는 컴파일러가 예외 처리를 하는지에 대한 여부이다.

RuntimeException은 Error와 함께 컴파일러가 예외를 체크하지 않는다. 이들을 비체크 예외(UnChecked Exceptions)라고 부른다.

반대로 OtherException은 Error와 RuntimeException을 제외한 모든 예외를 의미하며 컴파일러가 예외를 체크해 준다. 이는 체크 예외(Checked Exception)라고 부른다.

 

RuntimeException은 주로 프로그래밍 버그나 논리 오류에서 기인한다. 예를 들어 Null 상태인 객체에 접근할 때 발생하는 NullPointerException 같은 것을 말한다.

 

이러한 예외는 개발자가 처리해 줄 수도 있지만 꼭 처리해 줄 필요가 없다.

예외 처리는 개발자에게 이러한 부분이 잘못되었다는 것을 쉽게 알려주기 위해서 사용하는 것이다. 하지만 이러한 예외는 개발자가 부주의해서 발생하는 경우가 대부분이며 어느 정도 예측이 가능한 범위이기 때문에 반드시 예외 처리를 해줄 필요가 없는 것이다.

반면, OtherException은 무조건 예외 처리를 해줘야 한다. 만약 처리하지 않으면 컴파일러가 컴파일 과정에서 컴파일 오류를 발생시킨다.

즉, 우리는 3가지 종류의 예외 중 Checked Exception인 OtherException을 신경 써야 한다.

그렇다면 어떤 방식으로 예외를 처리할 수 있을까? 예외를 처리하는 방법은 크게 2가지가 있다.

 

@출처 : https://sorjfkrh5078.tistory.com/104

 

[Java] 예외의 종류

프로그램 개발을 하다 보면 다양한 오류가 발생할 수 있다. Java에서는 오류가 발생하면 어떤 오류인지를 개발자에게 알려줘서 오류를 처리할 수 있도록 기능을 지원해 준다. ​Java에서의 예외는

sorjfkrh5078.tistory.com