목차
- 예외 처리
- 예외 클래스
- 예외 던지기
1. 예외 처리
- 예외 (Exception): 프로그램 실행 중에 발생하는 에러 (Error)
- 예외 처리는 비정상적인 종료를 방지하고, 프로그램의 정상 실행을 유지
- 견고하고 안정적인 프로그램을 위해 반드시 수행해야 함
2. 예외 클래스
- Exception 클래스:
- 일반 예외 (Checked Exception): 컴파일 시점에 예외를 검사
- 실행 예외 (Unchecked Exception): 런타임에 예외 발생
3. 예외 던지기
- 예외 던지기: 메소드 내부에서 예외 발생 시,
throws 키워드로 메소드를 호출한 곳으로 예외 전파
throws는 메소드 선언부 끝에 작성 → 예외 클래스를 쉼표로 구분
throw는 사용자가 정의한 예외를 던짐
실행 예외 (런타임)
int num1 = 1;
int num2 = 0;
try {
int result = num1 / num2; // 0으로 나누기 예외 발생
} catch (ArithmeticException e) {
e.printStackTrace();
}
int[] arr = {1,2,3,4,5};
try {
for(int i=0; i<=5; i++) {
System.out.print(arr[i] + " "); // 배열 인덱스 초과
}
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
Animal animal = null;
try {
animal.move(); // NullPointerException
} catch (NullPointerException e) {
e.printStackTrace();
}
잘못된 캐스팅 예외
Animal a1 = new Tiger();
Animal a2 = new Eagle();
try {
Shark shark = (Shark) a2; // ClassCastException
shark.move();
} catch (ClassCastException e) {
e.printStackTrace();
}
일반 예외 (컴파일 예외)