介绍(了解)
在请求映射和控制器中抛出的异常会被HandlerExceptionResolver (接口)组成的链来处理。当异常不被处理,和处于错误响应状态时,servelt容器会将结果渲染到错误页面中。详情见:Exceptions
@Controller和@ControllerAdvice类中,可以有一个@ExceptionHandler 异常处理方法。详情见:Exceptions
这是
HandlerExceptionResolver实现类ExceptionHandlerExceptionResolver提供的功能。
状态码(重点)
HandlerExceptionResolver 的实现类ResponseStatusExceptionResolver提供了通过异常设置返回状态码的功能。
-
ResponseStatus注解:注解到异常类或控制器方法上,返回响应时会设置为指定的状态码。下面给出注解到方法的例子:@PostMapping @ResponseStatus(HttpStatus.CREATED) public void add(@RequestBody Person person) { // ... }用户添加成功后,会返回状态码为201的响应
-
ResponseStatusException:抛出该异常,直接设置状态码,如:@GetMapping("/test4") public String test4(@RequestParam(value = "isTrue",defaultValue = "false") boolean isTure) { if(isTure){ throw new ResponseStatusException(HttpStatus.NOT_FOUND, "没找到呀",new IllegalAccessException("不正常啊")); } return "ok"; }抛出异常时,状态码为404,异常的后两个参数会出现在响应消息体中。
本文详细介绍了Spring MVC框架中异常处理机制,包括HandlerExceptionResolver的作用、@ExceptionHandler的使用及ResponseStatus注解如何设定HTTP状态码。同时,探讨了ResponseStatusException的抛出方式及其对响应的影响。
653

被折叠的 条评论
为什么被折叠?



