-
[Java] Exception 발생 시키기Java 2022. 5. 20. 11:07반응형

Exception 발생 시키기
throw는 오류를 떠넘기는 throws와 같이 사용된다.
public class ExceptionExam3 { public static void main(String[] args) { int i = 10; int j = 0; int k = divide(i, j); System.out.println(k); } public static int divide(int i, int j){ int k = i / j; return k; } }divide메소드는 2번째 파라미터의 값이 0일 경우 나누기를 할 떄 Exception이 발생한다.
public class ExceptionExam3 { public static void main(String[] args) { int i = 10; int j = 0; int k = divide(i, j); System.out.println(k); } public static int divide(int i, int j){ if(j == 0){ System.out.println("2번째 매개변수는 0이면 안됩니다."); return 0; } int k = i / j; return k; } }에러가 발생하지 않게 수정하였다.
j가 0일 경우 안된다는 메세지가 출력되도록 수정하고 0을 리턴, 이렇게 할 경우 main메소드의 k변수는 0값을 가지게 되고 0을 출력하게 된다.
0으로 나눈 결과는 0이 아니다. 0으로 반환하면 더 큰 문제가 발생 할 수도 있다.
public class ExceptionExam3 { public static void main(String[] args) { int i = 10; int j = 0; int k = divide(i, j); System.out.println(k); } public static int divide(int i, int j) throws IllegalArgumentException{ if(j == 0){ throw new IllegalArgumentException("0으로 나눌 수 없어요."); } int k = i / j; return k; } }에러도 발생하지 않고 올바르지 않은 결과를 리턴하지 않게 수정했다. j가 0일경우 new 연산자를 통하여 IllegalArgumentException 객체가
만들어진다. new 앞에 throw 는 해당 라인에서 exception이 발생한다는 의미이다. 즉, 그 줄에서 오류가 발생했다는 것이다.
Exception 클래스 이름을 보면 아규먼트가 잘못되었기 때문에 발생한 오류라는 것을 알 수 있다.
반응형'Java' 카테고리의 다른 글
[Java] BufferedReader, BufferedWriter 사용법 (0) 2022.05.20 [Java] throws (0) 2022.05.20 [Java] Exception - 예외처리 (0) 2022.05.20 [Java] API - String 클래스 (0) 2022.05.19 [Java] 헷갈리는 문자열 함수 정리 (substring, split, charAt, indexOf, lastIndexOf) (0) 2022.05.18