📚 학습 기록/Java 기초 & 중급

📅 학습 날짜: 2025.02.21[자바 예외 처리 - 예외 계층 정리]

zenjoydev 2025. 2. 21. 22:59

📅 학습 날짜: 2025.02.21

📚 강의: 김영한의 자바 중급 - 섹션 10 예외 처리 1

📍 주제: 예외 처리 및 예외 계층 구조


✅ 예외 처리란?

**예외(Exception)**는 프로그램 실행 중 예상치 못한 오류가 발생하는 상황을 의미합니다.

예외 처리는 이러한 오류 발생 시 프로그램이 비정상적으로 종료되지 않도록 적절히 대응하는 방법을 의미합니다.

예외 처리가 필요한 이유

서버와 연결 후 데이터 전송, 연결 해제 과정이 필요

서버 연결이 실패한 경우 데이터 전송이 불가능함

정상적인 코드 흐름보다 예외 처리가 훨씬 복잡

네트워크 연결, 파일 I/O 등 외부 자원은 자동 해제되지 않음

외부 자원을 반환하지 않으면 오류가 누적되어 서버 리셋 등의 문제 발생

정상 흐름과 예외 흐름을 분리하면 코드의 이해도와 유지보수성이 향상됨


✅ 예외 계층 구조

자바의 예외는 Throwable 클래스를 기반으로 계층 구조를 형성합니다.

📌 예외 계층도

🔹 최상위 클래스: Throwable

모든 예외와 오류(Error)의 최상위 부모 클래스입니다.

  • Exception (예외): 애플리케이션에서 발생하는 예외
  • Error (오류): 시스템에서 발생하는 치명적인 오류

🔹 Error 클래스

정의: 시스템 수준의 심각한 문제를 나타내며, 애플리케이션에서 복구할 수 없는 오류

예시: OutOfMemoryError, StackOverflowError

개발자가 직접 처리하지 말아야 하는 예외

🔹 Exception 클래스

정의: 애플리케이션에서 발생할 수 있는 예외로, 적절한 처리를 통해 복구 가능

예시: IOException, SQLException

✔️ 체크 예외 (Checked Exception)

  • Exception을 상속한 예외 중 RuntimeException을 제외한 모든 예외
  • 컴파일 단계에서 반드시 처리해야 하는 예외
  • 예시: IOException, SQLException

✔️ 언체크 예외 (Unchecked Exception)

  • RuntimeException을 상속한 예외
  • 컴파일러가 강제하지 않는 예외
  • 예시: NullPointerException, IllegalArgumentException

✅ 예외 처리 키워드 정리

자바에서 예외를 처리할 때 사용하는 주요 키워드는 다음과 같습니다.

키워드
설명
try
예외가 발생할 가능성이 있는 코드를 감싸는 블록
catch
발생한 예외를 처리하는 블록
finally
예외 발생 여부와 관계없이 실행되는 블록 (자원 정리 용도)
throw
명시적으로 예외를 발생시키는 키워드
throws
메서드 선언 시 발생 가능한 예외를 선언하는 키워드

❗ 주의사항 및 학습 포인트

예외 계층 구조를 정확히 이해해야 함

✔ Exception과 Error의 차이를 명확히 구분해야 함

체크 예외 vs 언체크 예외 구분

✔ try-catch-finally를 적절히 활용하여 안정적인 코드 작성


📊 학습 진도 체크

오늘 학습한 내용:

✔️ [김영한의 자바 중급 - 섹션 10 예외 처리1 – 이론 – 자바 예외 처리1 예외 계층 까지]

✔️ [리마인드 필기]

📌 다음 학습 계획:

📅 2025.02.25 - 섹션 10 마무리