NoSuchEntityException
오류 메시지가 "존재하지 않는 %s입니다." 인데,
발생한 오류가NoSuchEntityException("MEMBER")
였을때 오류 메시지는 "존재하지 않는 MEMBER입니다."
NoSuchEntityException("POST")
의 오류가 발생했을때에도 "존재하지 않는 MEMBER입니다." 와 같이 이전의 오류 메시지가 출력되는 버그가 있었다.
<수정 전>
문제의 원인은NoSuchEntityException
entity 프로퍼티(”MEMBER” , ”POST”..)를 enum 클래스 메시지에 직접 넣어 변경했기 때문이다.
CommonErrorCode
enum 클래스 내에서 message
프로퍼티가 mutable이어서 오류메시지가 변하지 않았다.
이로인해 다른 NoSuchEntityException
인스턴스를 사용해 다른 예외를 처리할 때 같은 메시지가 나오는 오류가 발생했다.
<수정 후>
이 문제를 해결하기 위해 message 프로퍼티를 직접 변경하지 않고 매번 새로운 문자열을 담을 수 있는 변수 customMessage를 생성했다.
ErrorResponse 데이터 클래스에 customMessage를 인자로 받는 of 메서드를 새로 생성했다.
이넘 클래스의 메시지(errorCode.message)를 직접 변경하는 대신 새로운 문자열을 담을 수 있는 변수를 생성해 ErrorResponse에 전달했다.