프로그래밍/Java

예외처리 관련 기본기

seungdols 2015. 12. 28. 15:16

예외 블랙홀

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장 예외 편 中

반응형