GiveHub 프로젝트 중 예외처리 오류

박미소·2024년 1월 28일
0

코틀린

목록 보기
36/44

NoSuchEntityException 오류 메시지가 "존재하지 않는 %s입니다." 인데,

발생한 오류가NoSuchEntityException("MEMBER")였을때 오류 메시지는 "존재하지 않는 MEMBER입니다."

NoSuchEntityException("POST") 의 오류가 발생했을때에도 "존재하지 않는 MEMBER입니다." 와 같이 이전의 오류 메시지가 출력되는 버그가 있었다.


<수정 전>

문제의 원인은NoSuchEntityException entity 프로퍼티(”MEMBER” , ”POST”..)를 enum 클래스 메시지에 직접 넣어 변경했기 때문이다.

CommonErrorCodeenum 클래스 내에서 message프로퍼티가 mutable이어서 오류메시지가 변하지 않았다.

이로인해 다른 NoSuchEntityException 인스턴스를 사용해 다른 예외를 처리할 때 같은 메시지가 나오는 오류가 발생했다.


<수정 후>

이 문제를 해결하기 위해 message 프로퍼티를 직접 변경하지 않고 매번 새로운 문자열을 담을 수 있는 변수 customMessage를 생성했다.

ErrorResponse 데이터 클래스에 customMessage를 인자로 받는 of 메서드를 새로 생성했다.

이넘 클래스의 메시지(errorCode.message)를 직접 변경하는 대신 새로운 문자열을 담을 수 있는 변수를 생성해 ErrorResponse에 전달했다.

0개의 댓글