프로그램을 만들다 보면 수없이 많은 오류가 발생한다. 물론 오류가 발생하는 이유는 프로그램이 오동작을 하지 않기 하기 위한 자바의 배려이다. 하지만 때로는 이러한 오류를 무시하고 싶을 때도 있고, 오류가 날 때 그에 맞는 적절한 처리를 하고 싶을 때도 있다. 이에 자바는 try...catch, throw구문을 이용해 오류를 처리한다.
int i = 10;
int j = 0;
int k = i / j;
이렇게 10을 0으로 나눌려고 하면 ArithmeticException
예외가 발생한다. 자바는 이와 같은 예외가 발생하면 프로그램을 중단하고 오류 메세지를 보여준다.
int i = 10;
int j = 0;
try {
int k = i / j;
System.out.println(k);
} catch (ArithmeticException e) {
System.out.println("0으로 나눌수 없습니다." + e.toString());
} finally {
System.out.println("오류가 발생했든 안했든 무조건 실행");
}
try : try는 예외가 발생할 것 같은 부분을 try로 감싸준다.
catch : try문에서 예외가 발생했다면 catch문으로 넘어가 catch문이 수행된다.
finally : 예외가 발생하든 예외가 발생하지 않든 finally문은 무조건 실행된다.
0으로 나눌수 없습니다.java.lang.ArithmeticException: / by zero
오류가 발생했든 안했든 무조건 실행
public static void main(String[] args) {
int i = 10;
int j = 0;
try {
int k = divide(i, j);
System.out.println(k);
} catch (ArithmeticException e) {
System.out.println(e.toString());
}
}
public static int divide(int i, int j) throws ArithmeticException {
int k = i/j;
return k;
}
divide라는 함수를 만들어 throws를 통해 ArtihmeticException
에 대한 예외를 함수를 부르는 쪽에서 예외 처리를 해라 이렇게 할수도 있다.