2017-02-17 1 views
3

예외와 관련하여 반부패 레이어를 작성할 때 권장되는 방법은 무엇입니까?반부패 레이어 (ACL)의 예외 처리

시스템의 다른 인터페이스 측면 (통합 된 상황이라고도 함)이 통합되기 때문에 예외를 래핑/차폐해야한다고 말하는 것이 합리적입니까?

답변

3

반부패 방지 레이어는 외부 시스템의 관용구 및 동작이 경계 된 컨텍스트로 누설되지 않도록하기위한 것입니다. 따라서 BC에서 의미가있는 예외로 감싸는 예외를 래핑하는 것이 좋습니다.

이렇게하면 부패 방지 계층 내부에서 발생할 수있는 오류 사례에 대해 생각하고 응용 프로그램을보다 강력하게 만들 수 있습니다. 그런데 ACL 내에서 발생하는 모든 오류가 직접 타사 시스템 클라이언트 예외로 인해 발생하거나 발생할 수있는 것은 아닙니다. 성공하지만 일관성없는 결과, 예외 (예기치 않은 HTTP 응답 상태 등) 이외의 다른 방법으로 신호를 보낸 오류 등을 처리해야합니다.

예외를 래핑한다고해서 잘리는 것은 아닙니다. 모든 정보를 보존해야합니다. 원래 오류에서. 예외에 관한 모든 우수 사례는 유효합니다.

0

나는 이러한 예외를 모두 감싸지 않습니다. 레거시 예외가 스택 위로 올라 가게 할 수 있습니다. 그 이유는 반부패 계층을 혼란스럽게 할 수 있기 때문입니다. 그러나 특정 예외에 대한 오류 코드를 반환해야하는 요구 사항이있을 수 있기 때문에 가끔씩 다릅니다. 그 예외는 새로운 경계의 맥락 (반부패 계층)으로 포장됩니다.