https://devlog-wjdrbs96.tistory.com/141
https://altongmon.tistory.com/193
https://earthconquest.tistory.com/80
- try 블록에서 해당 타입의 예외가 발생하면 catch 블록을 실행하도록 되어있습니다.
- catch 블록이 여러 개라고 해도 단 하나의 catch 블록만 실행됩니다.
- try 블록에서 동시에 여러 예외가 발생하지 않고 하나의 예외가 발생하면 즉시 실행을 멈추고 해당 catch 문으로 이동하기 때문입니다.
public class Main {
public static void main(String[] args) {
int added;
int subtracted;
try {
added = Calculator.add(3,1000);
System.out.println(added);
subtracted = Calculator.subtract(3,4);
System.out.println(subtracted);
} catch (errorOverThousand | errorNegativeNumber e) {
System.out.println("특화된 에러: " + e.getMessage());
} catch (Exception e) {
System.out.println("catch all에러: " + e);
} finally {
System.out.println("연산이 끝났습니다.");
}
int multiplied = Calculator.multiply(3,4);
System.out.println(multiplied);
int divided = Calculator.divide(3,4);
System.out.println(divided);
}
}
//특화된 에러: 입력값의 합이 1000을 넘는 오류가 발생하였습니다.
//연산이 끝났습니다.
public class Main {
public static void main(String[] args) {
int added;
int subtracted;
try {
added = Calculator.add(3,1000);
System.out.println(added);
} catch (errorOverThousand e) {
System.out.println("특화된 에러: " + e.getMessage());
}
try {
subtracted = Calculator.subtract(3,4);
System.out.println(subtracted);
} catch (errorNegativeNumber e) {
System.out.println("특화된 에러: " + e.getMessage());
} finally {
System.out.println("연산이 끝났습니다.");
}
}
}
//특화된 에러: 입력값의 합이 1000을 넘는 오류가 발생하였습니다.
//특화된 에러: 입력값의 합이 음수입니다.
//연산이 끝났습니다.