springboot全局异常处理request not supported
时间: 2023-11-13 10:02:35 浏览: 92
当一个不支持的HTTP方法(例如PUT或DELETE)请求映射到一个处理程序方法时,通常会抛出`HttpRequestMethodNotSupportedException`异常。Spring Boot提供了全局异常处理机制,可以使用`@ControllerAdvice`和`@ExceptionHandler`注解来捕获和处理该异常。
下面是一个示例代码:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
public ResponseEntity<String> handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException ex) {
return new ResponseEntity<>("HTTP请求方法不支持", HttpStatus.METHOD_NOT_ALLOWED);
}
}
```
在上面的代码中,使用了`@ControllerAdvice`注解来声明一个全局异常处理类。`@ExceptionHandler`注解用于捕获`HttpRequestMethodNotSupportedException`异常,并返回一个带有错误消息和状态码的`ResponseEntity`对象。
此外,还可以使用`@ResponseStatus`注解来指定返回的HTTP状态码,例如:
```java
@ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
public String handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException ex) {
return "HTTP请求方法不支持";
}
```
在上面的代码中,使用了`@ResponseStatus`注解来指定返回的HTTP状态码为`METHOD_NOT_ALLOWED`,并直接返回错误消息。
阅读全文