본문 바로가기
Programming/Java

Checked Exception과 Unchecked Exception

by devinv 2023. 2. 23.
728x90

Java에서 Exception은 크게 Checked Exception과 Unchecked Exception으로 나뉩니다.

 

Checked Exception은 컴파일러가 예외처리를 강제하는 Exception을 말합니다. Checked Exception을 발생시키는 메서드는 반드시 try-catch 블록으로 감싸거나 throws 키워드를 사용하여 예외를 호출한 메서드에 전파해야 합니다. 대표적인 Checked Exception으로는 IOException, SQLException 등이 있습니다.

 

Unchecked Exception은 컴파일러가 예외처리를 강제하지 않는 Exception을 말합니다. Unchecked Exception은 RuntimeException 클래스를 상속받은 Exception입니다. 이러한 예외는 발생하지 않을 것으로 예상되는 예외, 프로그래머의 실수, 시스템적인 에러 등으로 발생할 수 있습니다. 대표적인 Unchecked Exception으로는 NullPointerException, ArrayIndexOutOfBoundsException, ClassCastException 등이 있습니다.

 

Checked Exception과 Unchecked Exception의 차이점은 예외처리의 강제성입니다. Checked Exception은 예외처리를 강제하기 때문에 코드가 더 안정적이고 예측 가능한 동작을 보장합니다. 반면에 Unchecked Exception은 예외처리를 강제하지 않기 때문에, 예상치 못한 예외가 발생할 수 있어서 코드의 안정성과 예측 가능성을 떨어뜨릴 수 있습니다.

 

또한 Checked Exception은 외부 리소스에 대한 접근, 네트워크 통신, 파일 입출력 등 I/O 작업에서 주로 발생하며, 이러한 예외들은 예외 처리를 통해 재시도하거나, 오류를 복구할 수 있는 기회를 제공합니다. 반면 Unchecked Exception은 대부분 프로그램의 오류나 예외적인 상황에서 발생하며, 이러한 예외들은 프로그램이 비정상적으로 종료되는 경우가 많습니다.

 

따라서, Checked Exception과 Unchecked Exception은 예외 처리의 강제성과 예외 발생의 이유에 따라 사용하며, 예외 처리를 잘 이해하고 사용하여 코드의 안정성과 예측 가능성을 보장할 필요가 있습니다.

728x90

'Programming > Java' 카테고리의 다른 글

HashMap과 시간 복잡도  (0) 2023.02.23
ConcurrentModificationException  (0) 2023.02.23
String, String Buffer, String Builder  (0) 2023.02.22
Final, Finally, Finalize 비교  (0) 2023.02.22
객체 상태의 영속화  (0) 2023.02.22