Data Duplicate [재질문]
- 작성자 :
- 오*원
- 작성일 :
- 2010-10-19 16:11:04
- 조회수 :
- 3,039
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
DAO에서
public FtItemOrgVO insert(FtItemOrgVO vo) throws SQLException {
try {
insert("FtItemOrgDAO.insert", vo);
}catch (SQLException se) {
log.error(se.ErrorCode);
}catch (Exception e) {
log.error("Exception");
}
return vo;
}
이렇게 했을때
catch (SQLException se) 요 부분에서 아래와 같은 메세지가 납니다.
Unreachable catch block for SQLException. This exception is never thrown from the try statement body
public FtItemOrgVO insert(FtItemOrgVO vo) throws SQLException {
try {
insert("FtItemOrgDAO.insert", vo);
}catch (SQLException se) {
log.error(se.ErrorCode);
}catch (Exception e) {
log.error("Exception");
}
return vo;
}
이렇게 했을때
catch (SQLException se) 요 부분에서 아래와 같은 메세지가 납니다.
Unreachable catch block for SQLException. This exception is never thrown from the try statement body
A
안녕하세요.. 오석원님..
iBatis 기반(Spring 연동)의 DAO를 사용하는 경우 SQLException이 아닌 DataAccessException을 throw하도록 되어 있습니다.
이 경우 DataAccessException의 getCause() 또는 getRootCause()를 활용하여 SQLException을 얻을 수 있습니다.
그러나 DBMS 독립적인 처리를 위하여 Spring에서는 DataAccessException의 하위 Exception을 정의하였습니다.
이 중 DataIntegrityViolationException을 활용하시면 됩니다.
즉, catch에서 DataIntegrityViolationException을 잡아서 처리하시면 됩니다.
이외에도.. BadSqlGrammarException, InvalidResultSetAccessException, PermissionDeniedDataAccessException 등이 제공되고 있습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
iBatis 기반(Spring 연동)의 DAO를 사용하는 경우 SQLException이 아닌 DataAccessException을 throw하도록 되어 있습니다.
이 경우 DataAccessException의 getCause() 또는 getRootCause()를 활용하여 SQLException을 얻을 수 있습니다.
그러나 DBMS 독립적인 처리를 위하여 Spring에서는 DataAccessException의 하위 Exception을 정의하였습니다.
이 중 DataIntegrityViolationException을 활용하시면 됩니다.
즉, catch에서 DataIntegrityViolationException을 잡아서 처리하시면 됩니다.
이외에도.. BadSqlGrammarException, InvalidResultSetAccessException, PermissionDeniedDataAccessException 등이 제공되고 있습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.