IT/JAVA

[JAVA] 자바 기초 복습 (Chapter.09)

j8970 2025. 3. 2. 19:49

📅 학습 기간: 2월 2주차
🎯 학습 내용: 예외 처리 / API


📌 1. 예외 처리 (Exception Handling)

💡 프로그램 실행 중 발생할 수 있는 예기치 못한 문제나 조건을 처리하는 방법
예외 발생 시 프로그램이 중단되지 않고 정상적인 흐름을 유지하도록 처리


🔹 1.1 자바 예외 클래스 구조

분류 설명
Throwable 예외와 오류의 최상위 클래스, 모든 예외 클래스는 이를 상속
Exception (예외) 프로그램이 처리할 수 있는 예외 (개발자가 직접 해결 가능)
Error (오류) 프로그램 외부에서 발생하는 시스템 수준 문제 (개발자가 직접 처리 불가)

자바 클래스 타입의 최상위 클래스는 Object


🔹 1.2 예외의 종류

✅ Checked Exception (컴파일 시 체크되는 예외)

  • 컴파일 시 반드시 예외 처리를 해야 함
  • 예외 처리가 없으면 컴파일 오류 발생
class Checked {
    // int number == 10; // 컴파일 오류 발생
}

✅ UnChecked Exception (런타임 시점 예외)

  • 컴파일 시점에는 체크되지 않음
  • 개발자의 실수로 인해 발생하는 예외
  • 컴파일러가 강제하지 않음 (체크하지 않음)
class UnChecked {
    int divide() {
        return 10 / 0; // 실행 시 ArithmeticException 발생
    }
}

🔹 1.3 예외 처리 방법

✅ try-catch 블록

try {
    // 예외가 발생할 가능성이 있는 코드
} catch (ExceptionType e) {
    // 예외 발생 시 실행할 코드
} finally {
    // 선택 사항: 예외 발생 여부와 관계없이 실행되는 블록
}

다중 catch 블록 사용 가능 (여러 예외 처리 가능)

✅ throw & throws 키워드

// throw: 특정 조건에서 예외를 발생시킴
throw new Exception("예외 메시지");

// throws: 메서드 선언부에서 호출자에게 예외 처리를 위임
public void method() throws Exception {
    // 예외 발생 가능 코드
}

🔹 1.4 사용자 정의 예외

💡 Exception 클래스를 상속받아 직접 예외 클래스를 정의할 수 있음

class InvalidUserException extends Exception {
    InvalidUserException(String message) {
        super(message); // Exception 클래스의 getMessage() 사용
    }
}

📌 2. API (Application Programming Interface)

💡 소프트웨어나 시스템 간 상호작용을 가능하게 하는 메서드의 집합
자바 API는 미리 정의된 클래스와 메서드의 집합


🔹 2.1 주요 자바 API 패키지

패키지명 설명
java.lang 기본 클래스 (String, Math, System) 포함 (자동 포함)
java.io 파일 입출력 관련 클래스 제공
java.util 유틸리티 클래스 (List, Map, Date 등) 포함
java.time 날짜 및 시간 처리 클래스 포함

자바 API 공식 문서: Java SE 17 API Docs


🔹 2.2 주요 클래스

✅ java.lang 패키지 (기본 패키지)

// Object 클래스: 자바의 모든 클래스의 최상위 클래스
class Example {}

// Math 클래스: 수학 연산을 위한 메서드 제공
double result = Math.sqrt(25); // 5.0 반환

// String 클래스: 문자열 조작 관련 기능 제공
String text = "Hello, World!";
int length = text.length(); // 문자열 길이 반환

✅ java.time 패키지 (날짜 및 시간 처리)

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;

LocalDate date = LocalDate.now(); // 현재 날짜
LocalTime time = LocalTime.now(); // 현재 시간
LocalDateTime dateTime = LocalDateTime.now(); // 현재 날짜 및 시간

🎯 소감

📌 예외 처리는 프로그램의 안정성을 위해 필수적인 개념이다!
📌 API를 활용하면 개발 생산성을 높일 수 있다!
📌 자바 API 문서를 적극적으로 참고하는 습관이 필요하다!

 

🚀 마무리
이번 학습을 통해 예외 처리와 API의 개념을 확실히 정리할 수 있었다! 🎯