hanker

Java - CheckedException과 UncheckedException이 뭐지? 본문

JAVA

Java - CheckedException과 UncheckedException이 뭐지?

hanker 2024. 12. 6. 00:00
반응형

이번 글에서는 Checked / Unchecked Exception 두 예외처리에 대해서 자세히 알아보자.

 

https://hanke-r.tistory.com/entry/Java-%EC%BB%B4%ED%8C%8C%EC%9D%BC%ED%83%80%EC%9E%84Compile-Time%EA%B3%BC-%EB%9F%B0%ED%83%80%EC%9E%84Run-Time%EC%9D%B4-%EB%AD%98%EA%B9%8C

 

Java - 컴파일타임(Compile Time)과 런타임(Run Time)이 뭘까?

프로그램의 실행과 관련된 중요한 개념인 컴파일 타임(Compile Time)과 런타임(Run Time)에 대해서 알아보자! 컴파일 타임 (Compile Time) 정의- 컴파일 타임은 소스 코드를 기계어로 변환하는 컴파일 과

hanke-r.tistory.com

 

이 내용을 설명하기전에 위 글을 미리 읽어보길 바란다.


Checked Exception

 

정의

Checked Exception은 컴파일 타임에 발생 가능성을 검사하는 예외이다. 코드에서 이러한 예외를 처리하지 않으면 오류가 발생하기 때문에 

반드시 try-catch 블록으로 처리하거나 throws 키워드로 호출 메서드에 예외를 명시해야 합니다.

 

 

특징

- 컴파일러가 예외 처리 여부를 강제한다.

- 예외 처리를 명시하지 않으면 컴파일 에러가 발생한다.

- 주로 프로그램 외부 환경에 의해 발생할 가능성이 있는 예외이다.

 

 

예시)

IOException: 파일 입출력 시 발생 가능

SQLException: 데이터베이스 처리 중 발생 가능

ClassNotFoundException: 클래스 로딩 실패

FileNotFoundException : 지정한 파일이 존재하지 않을 때

 


Unchecked Exception

 

정의

Unchecked Exception은 컴파일러가 예외 처리 여부를 강제하지 않는 예외로, 런타임 시에만 확인된다.

주로 프로그래머의 실수로 발생한다.

 

특징

- 주로 프로그래머의 실수로 인해 발생한다.

- try-catch로 처리하지 않아도 컴파일 오류가 발생하지 않는다. 개발자의 선택에 따라 처리하거나 무시할 수 있다.

- 런타임 시에만 예외가 발생하므로 컴파일 시에는 예외 처리 여부를 확인하지 않는다.

- RuntimeException 클래스를 상속한 예외들이다.

- 프로그램이 실행 중 문제를 발견하고 예외를 던진다.

 

예시

NullPointerException: null 객체를 참조할 때 발생

ArrayIndexOutOfBoundsException: 배열 인덱스 초과

ArithmeticException: 0으로 나누기

IllegalArgumentException : 메서드에 잘못된 인수를 전달할 경우

 


정리

 

특징 Checked Exception Unchecked Exception
검사 시점 컴파일 타임 런타임
처리 강제 여부 반드시 처리해야 함 (try-catch 또는 throws) 처리 강제 없음
주로 발생 상황 외부 환경 문제 프로그래머의 실수
대표 클래스 Exception (단, RuntimeException 제외) RuntimeException 및 그 하위 클래스

 

Checked Exception: 예외를 명확히 예상하고 강제적으로 처리해야 하는 경우 사용

예: 파일, 네트워크, 데이터베이스 작업

 

Unchecked Exception: 프로그래머가 실수한 경우 런타임 시 문제를 처리할 수 있도록 사용

예: 잘못된 코드 작성으로 발생하는 논리적 오류

 

 

끝.

반응형