package Java02;
public class ExceptionThrowExam {
public static void main(String[] args) {
// 정수에 값 넣기
int i = 10;
int j = 0;
try {
int k = divide(i, j);
System.out.println(k);
} catch (IllegalArgumentException e) {
System.out.println(e.toString());
}
}
// 정수 값 2개를 입력받고 그 정수를 나누어서 결과를 리턴하는 divide라는 메서드 정의
public static int divide(int i, int j) throws IllegalArgumentException {
if (j == 0) {
//new 앞에 throw라는 키워드가 있다면
// 해당 라인에서 Exception이 발생한다라는 뜻.
throw new IllegalArgumentException("0으로 나눌 수 없습니다.");
}
int k = i / j;
return k;
}
}
강제로 오류를 발생시키는 throw
throw는 오류를 떠넘기는 throws와 보통 같이 사용.
-- 코드 분석
if (j == 0) {
//new 앞에 throw라는 키워드가 있다면
// 해당 라인에서 Exception이 발생한다라는 뜻.
throw new IllegalArgumentException("0으로 나눌 수 없습니다.");
}
- j가 0일 경우에 new연산자를 통하여 IllegalArgumentException 객체가 만들어 진다.
- new 앞에 throw 는 해당 라인에서 Exception이 발생한다는 의미
즉, "해당 줄에서 오류가 발생한다라는 의미"
출력 메세지로 "0으로 나눌수 없습니다. "라는 오류가 발생
- Exception클래스 이름을 보면 아규먼트가 잘못되었기 때문에 발생한 오류라는 것을 알 수 있다.
'PL(ProgrammingLanguage) > JAVA' 카테고리의 다른 글
[프로그래머스] 약수의 합 (0) | 2021.10.16 |
---|---|
사용자 정의 Exception (0) | 2021.10.16 |
throws (0) | 2021.10.16 |
Exception - 예외 (0) | 2021.10.13 |
내부클래스 - local 클래스 / 익명클래스 (0) | 2021.10.13 |