mybatis에서 oracle procedure의 exception 추가 문의
- 작성자 :
- 최*
- 작성일 :
- 2014-05-30 16:42:49
- 조회수 :
- 1,307
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
답변 주신 내용은 잘 보았습니다.
sqlException을 catch에서 처리하려고 한 이유가 sqlException의 메시지를 사용하려고 함입니다.
프로시져에서 Exception이 발생한경우 사용자정의 메시지를 catch하여 그 메시지를 사용하려고 합니다.
아래에 프로시져의 내용을 일부 올려 놓을테니 확인하시는데 참고해주시기 바랍니다.
그리고 가능하면 확인후 전화를 주시면 감사하겠습니다.
RUN_APP := '--- SP_CNRTCHG_PYMTAG ---';
APP_MSG := '지급약정변경 처리시 오류가 발생하였습니다.';
EXCEPTION
WHEN NO_DATA_FOUND THEN
IF ( ERR_MSG = '' ) THEN
RAISE_APPLICATION_ERROR(-20001, APP_MSG );
ELSE
RAISE_APPLICATION_ERROR(-20001, ERR_MSG );
END IF;
WHEN OTHERS THEN
IF ( ERR_MSG = '' ) THEN
RAISE_APPLICATION_ERROR(-20001, APP_MSG );
ELSE
RAISE_APPLICATION_ERROR(-20001, ERR_MSG );
END IF;
sqlException을 catch에서 처리하려고 한 이유가 sqlException의 메시지를 사용하려고 함입니다.
프로시져에서 Exception이 발생한경우 사용자정의 메시지를 catch하여 그 메시지를 사용하려고 합니다.
아래에 프로시져의 내용을 일부 올려 놓을테니 확인하시는데 참고해주시기 바랍니다.
그리고 가능하면 확인후 전화를 주시면 감사하겠습니다.
RUN_APP := '--- SP_CNRTCHG_PYMTAG ---';
APP_MSG := '지급약정변경 처리시 오류가 발생하였습니다.';
EXCEPTION
WHEN NO_DATA_FOUND THEN
IF ( ERR_MSG = '' ) THEN
RAISE_APPLICATION_ERROR(-20001, APP_MSG );
ELSE
RAISE_APPLICATION_ERROR(-20001, ERR_MSG );
END IF;
WHEN OTHERS THEN
IF ( ERR_MSG = '' ) THEN
RAISE_APPLICATION_ERROR(-20001, APP_MSG );
ELSE
RAISE_APPLICATION_ERROR(-20001, ERR_MSG );
END IF;
A
안녕하세요. 최헌님.
이전에 답변 드린 내용 처럼 SQLException이 아닌 DataAccessException로 catch를 하셔야 하면,
내부 오류를 확인하시려면 실제 발생된 MyBatisSystemException의 nested exception을 확인하셔서 원래의 SQLException을 확인하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
이전에 답변 드린 내용 처럼 SQLException이 아닌 DataAccessException로 catch를 하셔야 하면,
내부 오류를 확인하시려면 실제 발생된 MyBatisSystemException의 nested exception을 확인하셔서 원래의 SQLException을 확인하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.