ExceptionHandler 调用但不影响 http 响应

ExceptionHandler invokes but doesn't affect http response

我有以下方法:

    @ExceptionHandler(InvalidPriceUpdateException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public String handleInvalidPriceUpdateException(InvalidPriceUpdateException e) throws JsonProcessingException {
        return objectMapper.writeValueAsString(new HttpErrorDTO(e.getMessage()));
    }

我看到(在调试中)它调用但在浏览器中我看到 500 错误(而不是 HttpStatus.BAD_REQUEST)。并且 http 响应的内容包含异常信息(而不是 HttpErrorDTO 结构)。

我的代码有什么问题?

这是因为您要返回一个 String,您实际上应该在其中构建整个 ResponseEntity。阅读 here 了解这意味着什么以及如何构建一个示例。