▶ UnCheckedException
- 예외처리를 필수로 하지 않아도 되는 예외
▶ RuntimeException
- 프로그램 실행시 발생되는 예외들
■ RuntimeException 관련된 예외
- 조건문으로 해결 가능 => 예외 자체가 발생 안되게끔 개발자가 소스코드로 핸들링 하는 것 (예외 처리x)
- 예외처리 구문으로도 해결 가능 => 예외가 발생했을 때를 대비해서 그때 실행할 내용을 정의해두는 것
예측이 가능한 상황 => 조건문으로 해결하는 것을 권장
예측이 불가능한 상황 => 예외처리 구문으로 해결
RuntimeException 계열은 충분히 예측 가능한 상황이기 때문에 => 조건문으로 해결하는 것을 권장함
▶ RuntimeException의 자식클래스들
■ ArrayIndexOutOfBoundsException
- 배열의 부적절한 인덱스로 접근했을 때 발생하는 예외
■ NullPointerException
- 참조변수가 담고있는 값이 NULL임에도 불구하고 어딘가에 접근하려고 할 때 발생하는 예외(null.어딘가)
■ ArithmeticException
- 나누기 연산시 0으로 나눌 때 발생하는 예외
ex) 사용자에게 두개의 정수값을 입력받아 나눗셈을 한 결과를 출력할 예정
System.out.print("첫 번째 정수 : ");
int num1 = sc.nextInt();
System.out.print("두 번째 정수 : ");
int num2 = sc.nextInt();
해결방법 1. 조건문으로 처리해주기 (애초에 예외가 발생할 수 없게끔 if문으로 조건검사 후 계산진행) => 예외처리 x
if (num2 != 0) {
System.out.println("나눗셈 연산 결과 : " + num1 / num2);
} else {
System.out.println("0으로 나눌 수 없습니다.");
}
해결방법 2. 예외처리 구문으로 해결 (예외가 발생했을 경우를 대비해서 실행할 내용을 정의해두는 것)
try {
System.out.println("나눗셈 연산 결과 : " + num1 / num2);
} catch (ArithmeticException e) {
e.printStackTrace(); // 오류를 추적해주는 구문(현재 예외가 발생한 정보를 볼 수 있다)
}
System.out.println("프로그램 종료");
■ ClassCastException
- 강제적 형변환을 할 때 허용하지 않는 형변환일 떄 발생
■ NegativeArraySizeException
- 배열의 크기를 음수로 지정할 경우 발생하는 예외
이러한 RuntimException과 관련한 예외는 충분히 예측가능한 상황이기 때문에 예외 자체가 발생이 안되게끔 조건문으로 해결이 가능하다.
즉, 굳이 예외처리(예외가 발생했을 때 실행할 내용을 정의해두는 행위)를 할 필요가 없다.
'JAVA' 카테고리의 다른 글
JAVA (22) CustomException (0) | 2023.04.12 |
---|---|
JAVA (21) CheckedException (0) | 2023.04.12 |
JAVA (19) 예외처리 (0) | 2023.04.12 |
JAVA (18-7) API (DATE) (0) | 2023.04.12 |
JAVA (18-6) API (Wapper) (0) | 2023.04.11 |