티스토리 뷰
Exception 종류
RuntimeException이 checked exception과 unchecked exception을 나누는 기준으로서 RuntimeException과 서브 Exception은 모두 unchecked exception에 속하고 나머지는 모두 checked exception에 속한다.
- checked exception
- 반드시 try-catch 문으로 처리해야 하는 예외
- 예) IOException, FileNotFoundException
- unchecked exception
- 반드시 처리해야 할 필요가 없는 예외
- 예) RuntimeException, NullPointerException, ArithmeticException
Exception 클래스의 메소드
- getMessage()
- exception 객체가 가지고 있는 에러 메세지를 반환
class Example {
public static void main(String[] args){
int num1 = 2, num2 = 3;
try {
int result = num1 - num2;
if (result < 0)
throw new Exception("잘못된 결과입니다.");
System.out.println(result);
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
- printStackTrace()
- getMessage 메소드 보다 상세한 exception 정보를 알고 싶을 때 사용
- 개발 단계에 디버깅 목적으로만 사용해야 한다.
class Example {
public static void main(String[] args){
try {
int arr[] = new int[0];
System.out.println("합계" + getTotal(arr));
} catch (Exception e) {
e.printStackTrace();
}
}
static int getTotal(int[] arr) throws Exception {
if (arr.length == 0)
throw new Exception("비어있는 배열입니다.");
int total = 0;
for(int num : arr)
total += num;
return total;
}
}
Exception 클래스의 선언 방법
class CustomException extends RuntimeException {
CustomeException() {
supur("잘못된 입력입니다.");
}
}
class Example {
public static void main(String[] args){
int num1 = 2, num2 = 3;
try {
int result = subtract(num1, num2);
System.out.println(result);
} catch (CustomException e) {
System.err.println(e.getMessage());
}
}
static int subtract(int a, int b) throws CustomException {
if(a < b){
throw new CustomException();
}
return a - b;
}
}
참고
<뇌를 자극하는 Java 프로그래밍>, 한빛미디어
'Language > Java' 카테고리의 다른 글
멀티스레드 프로그래밍 (0) | 2022.10.19 |
---|---|
우아한테크캠프 Pro 5기 프리코스 - JUnit, AssertJ 학습하기 (2) | 2022.10.04 |
자바 자료구조 (0) | 2022.07.04 |
Overflow가 발생하면 어떻게 될까? (0) | 2022.04.27 |
JVM의 Garbage Collector (0) | 2021.04.09 |
댓글