예외 블랙홀
try{
}catch(SQLException e){
}
위 코드도 좋지 않는 경우이지만, 아래 코드 또한 좋지 않은 습관이다.
}catch(SQLException e){
System.out.println(e);
}
}catch(SQLException e){
e.printStackTrace();
}
예외처리 할 때 반드시 지켜야 할 핵심 원칙은 한 가지다.
모든 예외는 적절하게 복구 되든지 아니면 작업을 중단시키고 운영자 또는 개발자에게 분명하게 통보 되어야 한다.
위의 코드 보다는 아래의 코드가 훨씬 나은 예외처리라고 한다.
}catch(SQLException e){
e.printStackTrace();
System.exit(1);
}
물론, 실제로 이렇게 프로그래밍을 하라는 말은 아니지만, 앞에 있는 코드 보다는 그나마 ‘예외처리’에 가깝다는 말이다.
무분별한 throws 사용은 지양할 것.
public void method1() throws Exception{
method2();
}
public void method2() throws Exception{
method3();
}
public void method3() throws Exception{
}
위와 같은 코드는 정말 위험한 예외 던지기 순환이다. 이런 구조로 예외를 상위로 연속적으로 던지기만 하다 보면 도대체 누가 어디서 예외를 발생시켰는지 찾기가 굉장히 어렵다. 지양해야 하는 구조이다.
발췌 ) 토비의 스프링 4장 예외 편 中