You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Spring Boot服务端返回的JSON错误响应添加message属性

方案1:修改配置文件(最简单快速)

Spring Boot默认不会在错误响应中返回异常的message字段,只需在配置文件中开启即可:
如果用application.properties,添加如下配置:

server.error.include-message=always

如果用application.yml,添加如下配置:

server:
  error:
    include-message: always

改完重启项目,调用接口就能在返回的JSON里看到message字段,值就是你抛出异常时填的Opps can not get all students。

注意:该配置会将所有异常的message信息都返回,生产环境使用时请确认不会泄露敏感信息。


方案2:全局异常处理(更灵活可控,推荐生产环境使用)

如果需要自定义错误返回结构,或者只希望特定异常的信息返回给前端,可以用@RestControllerAdvice实现全局异常捕获:

  1. 首先定义统一的错误响应结构(可选,也可以直接用Map返回)
import lombok.Data;
import java.time.LocalDateTime;

@Data
public class ErrorResponse {
    private LocalDateTime timestamp;
    private Integer status;
    private String error;
    private String message;
    private String path;
}
  1. 编写全局异常处理类
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(IllegalStateException.class)
    public ResponseEntity<ErrorResponse> handleIllegalStateException(IllegalStateException e, HttpServletRequest request) {
        ErrorResponse error = new ErrorResponse();
        error.setTimestamp(LocalDateTime.now());
        error.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
        error.setError(HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase());
        error.setMessage(e.getMessage());
        error.setPath(request.getRequestURI());
        return new ResponseEntity<>(error, HttpStatus.INTERNAL_SERVER_ERROR);
    }

    // 可扩展添加其他异常的处理方法,适配不同业务场景
}

这种方式可以完全自定义返回的字段内容、状态码,也可以避免敏感异常的信息泄露给前端,可扩展性更强。

内容的提问来源于stack exchange,提问作者Marquez Ludin Albarado Jaimes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:39:02