
프로그램 실행 시 발생할 수 있는 예외에 대한 코드 작성하는 것.
즉 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하기 위해서하는 것
catch(Exception e)는 모든 예외를 처리한다.그 전에 다른 예외처리에 대한 catch문에 대한 예외를 처리한 후 나머지 예외처리를 이 catch문에서 처리함. Exception은 맨 마지막에 놓는게 좋음. 다른 예외처리가 Exception 다음에 오면 처리가 안됨(오류)
printStackTrace는 예외가 발생한 호출 경로를 알 수 있다. 즉 어떤 메서드에서 어떤 메서드를 거쳐 어디서 예외가 발생했는지.
getMessage는 예외 객체에 저장된 예외 메세지를 알 수 있음
throw로 예외를 고의로 발생시킬 수 있음.
try-catch 문에서 예외가 실행되든 안되든 무조건 실행되는 블럭
그 전에 try 문에서 return 이 있어도 finally가 실행되고 return됨
try {
} catch(Exception e ) {
} finally {
}
Exception은 필수처리 예외이며 사용자 실수
RuntimeException은 선택처리 예외이며 개발자 실수
메서드 내에서 발생한 예외를 catch 블록에서 처리한 후 throw를 통해 다시 호출부로 던지는 기법 한 메서드에서 발생할 수 있는 예외가 여럿인 경우, 몇 개는 try-catch문을 통해서 메서드 내에서 자체적으로 처리하고, 그 나머지는 선언부에 지정하여 호출한 메서드에서 처리하도록 함으로써, 양쪽에서 나눠서 처리되도록 할 수있다.
static void method1() throws Exception {
try {
throw new Exception();
} catch (Exception e) {
System.out.println("method1 Exception");
throw e; // 다시 예외를 발생 시킨다.
}
}
public static void main(String[] args) {
try {
method1();
} catch (Exception e) {
System.out.println("main Exception");
}
}
// 결과
// method1 Exception
// main Exception