在Spring Boot的JSON响应中显示异常名称,可以通过以下步骤实现:
spring-boot-starter-web
和spring-boot-starter-webflux
。ErrorController
接口,并使用@RestControllerAdvice
注解进行标记。这个异常处理器将用于捕获应用程序中的异常并返回自定义的JSON响应。import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/error")
public class CustomErrorController implements ErrorController {
@RequestMapping
public ResponseEntity<ErrorResponse> handleError(HttpServletRequest request) {
// 获取异常信息
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
Object error = request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
// 构建自定义的错误响应
ErrorResponse response = new ErrorResponse();
response.setStatus((Integer) status);
response.setError(error.getClass().getSimpleName()); // 获取异常名称
return new ResponseEntity<>(response, HttpStatus.INTERNAL_SERVER_ERROR);
}
@Override
public String getErrorPath() {
return "/error";
}
}
public class ErrorResponse {
private int status;
private String error;
// 省略 getter 和 setter 方法
}
application.properties
或application.yml
)中,禁用Spring Boot的默认错误处理。对于application.properties
:
server.error.whitelabel.enabled=false
对于application.yml
:
server:
error:
whitelabel:
enabled: false
CustomErrorController
捕获,并返回一个包含异常名称的JSON响应。注意:以上代码示例中的异常处理方式是一种简单的实现方式,你可以根据实际需求进行修改和扩展。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云云函数(SCF)、腾讯云API网关(API Gateway)。
腾讯云产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云