📅 학습 날짜: 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 마무리
'📚 학습 기록 > Java 기초 & 중급' 카테고리의 다른 글
[25.02.25][Java] 예외 처리 (Exception Handling) - 예외 계층, 체크 예외 vs 언체크 예외 (0) | 2025.02.25 |
---|---|
# 🎯 프로그래머스 코딩테스트 풀이 기록 (Level 0) - 25.02.23 (0) | 2025.02.23 |
[25.02.20][Java 기초] 조건문 완벽 이해하기 - if, switch, 삼항 연산자 (1) | 2025.02.20 |
📅 [25.02.20] 자바 중첩 클래스와 내부 클래스 정리 (1) | 2025.02.20 |
🗓️ 학습 일자: 2025.02.08, 2025.02.18📘 코딩 테스트 프로그래머스 : 가까운 수, 숨어있는 숫자의 덧셈, 한번만 등장한 문자 (1) | 2025.02.18 |