자바의 Error는 프로그램의 실행을 이어가도록 조치할 수 없는 상황입니다.
Exception은 프로그램에서 조치가 가능한 경우입니다.
IOException과 같이 반드시 코드에서 처리를 해줘야하는 CheckedException 계열이 있고,
RuntimeException과 그 상속받은 예외들처럼 코드 상에서 반드시 처리를 하지 않아도 되는 UncheckedException 계열로 나눌 수 있습니다.
try catch finally 명령을 통해서 예외를 처리하거나, 메소드 시그너처에서 노출합니다. 그 메소드를 부르는 상위 메소드에서 처리하도록 강제하는 것입니다.
package net.okjsp.java;
public class ExceptionTest {
public static void main(String[] args) {
divide(30, 5);
try {
//divide(30, 0);
divide2(3, 0);
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("반드시 실행되는 코드");
}
}
private static void divide(int a, int b) {
int c = a / b;
System.out.println(c);
}
private static void divide2(int a, int b) throws Exception {
if (b == 0) {
throw new Exception("0으로 나눌 수 없습니다.");
}
int c = a / b;
System.out.println(c);
}
}