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의 개념을 확실히 정리할 수 있었다! 🎯