Я не вижу проблем с вашим подходом. и так как вы упомянули, что он работает нормально, вы уже определили все необходимые классы пользовательских классов исключений. и на ваш вопрос: «возможно, предоставьте только код ошибки, чтобы потребляющие сервисы могли использовать сообщения об ошибках в своих сервисах». - вам нужно заполнить сообщение об ошибке там, где вы видите исключение (источник).
Я могу предложить одно небольшое изменение, вы можете извлечь httpStatus из ErrorDetailsObj. возвращая объект ResponseEntity, вы можете HttpStatus в конструктор ResponseEntity. например: return ResponseEntity (errorDetailsObj, HttpStatus. <>);
Надеюсь, это поможет.