AOP Custom Exception 처리
- 작성자 :
- 안*섭
- 작성일 :
- 2018-03-16 11:57:51
- 조회수 :
- 1,663
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요! AOP Exception 처리관련해서 질문입니다.
자체 Exception 클래스를 생성해서 관련 예외 발생시 처리하는 로직을 개발하고자 합니다.
다음과 같이 진행했지만 CustomExceptionHndlr까지 진행되지 않았습니다.
1. 클래스 생성: CustomException extends Exception
2. 클래스 생성: CustomExceptionHndlr extends ExceptionHandler
3-1. context-aspect.xml (ExceptionHandleManager patterns 적용) 등록
- ExceptionTransfer.transfer 에서 'else' case로 분기되고 종료 됨
- 그래서 'CustomException'를 추가한 ExceptionTransfer.transfer 를 구현하여 적용도 해봤으나 안됨.
3-2 context-customaspect.xml(Pointcut 별도적용) 등록
- ExceptionTransfer까지 실행되지 않는것 같음
여기서 aop, bean 등록 방법 알려주시면 감사하겠습니다.
*인터넷망이 아니어서 파일은 첨부할 수 없는점 양해바랍니다.
- 가이드의 "Exception Handling 서비스"에서 "Customizable Handler 등록" 부분 확인하고 따라했습니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:bsl:exception_handling
자체 Exception 클래스를 생성해서 관련 예외 발생시 처리하는 로직을 개발하고자 합니다.
다음과 같이 진행했지만 CustomExceptionHndlr까지 진행되지 않았습니다.
1. 클래스 생성: CustomException extends Exception
2. 클래스 생성: CustomExceptionHndlr extends ExceptionHandler
3-1. context-aspect.xml (ExceptionHandleManager patterns 적용) 등록
- ExceptionTransfer.transfer 에서 'else' case로 분기되고 종료 됨
- 그래서 'CustomException'를 추가한 ExceptionTransfer.transfer 를 구현하여 적용도 해봤으나 안됨.
3-2 context-customaspect.xml(Pointcut 별도적용) 등록
- ExceptionTransfer까지 실행되지 않는것 같음
여기서 aop, bean 등록 방법 알려주시면 감사하겠습니다.
*인터넷망이 아니어서 파일은 첨부할 수 없는점 양해바랍니다.
- 가이드의 "Exception Handling 서비스"에서 "Customizable Handler 등록" 부분 확인하고 따라했습니다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:bsl:exception_handling
A
안녕하십니까, 안점섭님
표준프레임워크센터입니다.
먼저 Exception을 던지는 원리를 설명드리겠습니다.
Exception 종류를 EgovBizException, RuntimeException(DataAccessException 포함), FdlException,
나머지 Exception 으로 나누고 있으며, 후 처리로직은 EgovBizException, RuntimeException 에서만 동작합니다.
그래서 나머지 Exception 의 경우 Exception 을 BaseException (메세지: fail.common.msg)으로 재생성하여 변경해서 던진며, fail.common.msg 메세지키가 Message Resource 에 정의 되어 있어야 됩니다.
3.7에는 추가된 클래스가 있습니다.
eGovFrame 공통컴포넌트 3.7에 보시면 egovframework.rte.fdl.cmmn.exception에
BaseRuntimeException이 EgovBizException의 상위 클래스로 정의되어 있습니다.
Exception Handling 상의 BaseRuntimeException 은 상속받은 자식 Exception에 대한 throw시
service(인터페이스) > controller 전달 할수 있도록 구성 되어 있으니 참고하셔서 커스터마이징 하시면 될 것 같습니다.
감사합니다.
표준프레임워크센터입니다.
먼저 Exception을 던지는 원리를 설명드리겠습니다.
Exception 종류를 EgovBizException, RuntimeException(DataAccessException 포함), FdlException,
나머지 Exception 으로 나누고 있으며, 후 처리로직은 EgovBizException, RuntimeException 에서만 동작합니다.
그래서 나머지 Exception 의 경우 Exception 을 BaseException (메세지: fail.common.msg)으로 재생성하여 변경해서 던진며, fail.common.msg 메세지키가 Message Resource 에 정의 되어 있어야 됩니다.
3.7에는 추가된 클래스가 있습니다.
eGovFrame 공통컴포넌트 3.7에 보시면 egovframework.rte.fdl.cmmn.exception에
BaseRuntimeException이 EgovBizException의 상위 클래스로 정의되어 있습니다.
Exception Handling 상의 BaseRuntimeException 은 상속받은 자식 Exception에 대한 throw시
service(인터페이스) > controller 전달 할수 있도록 구성 되어 있으니 참고하셔서 커스터마이징 하시면 될 것 같습니다.
감사합니다.