首页 > 解决方案 > 如何在 API 异常消息中换行?

问题描述

这是我的异常处理程序示例

   @ExceptionHandler
public ResponseEntity<ApiErrorResponse> handleException(EntityNotFoundException exc) {
    ApiErrorResponse error = new ApiErrorResponse();
    error.setStatus(HttpStatus.FORBIDDEN.value());
    error.setMessage(exc.getMessage());
    error.setTimeStamp(System.currentTimeMillis());
    return new ResponseEntity<>(error, HttpStatus.NOT_FOUND);
}

这是我抛出的异常

    public static void throwExceptionIfBindingResultHasErrors(BindingResult bindingResult) {
    List<FieldError> fieldErrorList = bindingResult.getFieldErrors();
    var stringBuilder = new StringBuilder();

    fieldErrorList
            .forEach(fieldError -> stringBuilder.append("Field name: ")
                    .append(fieldError.getField())
                    .append(" Rejected Value: ")
                    .append(fieldError.getRejectedValue())
                    .append(" Message ")
                    .append(fieldError.getDefaultMessage())
                    .append(System.lineSeparator()));

    throw new InvalidRequestException(stringBuilder.toString());
}

这是我得到的结果(没有新行,只有 \r\n 符号)

"status": 400,
"message": "Field name: address Rejected Value: toooloooongStriingstoooloooongStriingstoooloooongStriings Message must be between 5 and 60\r\nField name: name Rejected Value: toooloooongStriingstoooloooongStriingstoooloooongStriingstoooloooongStriings Message must be between 5 and 50\r\n",
"timeStamp": 1629117439443

标签: javaspringspring-boot

解决方案


推荐阅读