[JAVA]RestControllerAdvice ExceptionHandler设置全局异常返回对象时,始终显示{}

发布时间 2023-07-11 02:06:12作者: le.li
@RestControllerAdvice
@Slf4j
public class GlobalRestExceptionHandler {
    @ExceptionHandler(value = BusinessException.class)
    public String handleException(BusinessException e) {
        return JSON.toJSONString(e);
    }

    @ExceptionHandler(Exception.class)
    public ResponseEntity<JSONObject> handleException(Exception e) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(JSONObject.parseObject(JSON.toJSONString(Response.fail(e.getMessage()))));
    }
}

  分析:跟踪代码发现

Response.fail(e.getMessage())是一个为空的对象
JSON.toJSONString(Response.fail(e.getMessage())) 却返回了{},而且没有任何报错
  解决:
Response内部的属性没有添加Getter方法,导致没有获取到任何属性值,这里添加@Data问题解决