springboot全局异常类
时间: 2023-09-22 08:10:49 浏览: 105
在Spring Boot中,可以通过自定义一个全局异常处理类来捕获整个应用程序中的异常并进行统一处理。以下是一个简单的示例:
首先,创建一个自定义的全局异常处理类,例如 `GlobalExceptionHandler`:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
// 处理异常逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Something went wrong");
}
@ExceptionHandler(MyCustomException.class)
public ResponseEntity<String> handleCustomException(MyCustomException e) {
// 处理自定义异常逻辑
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
}
// 可以添加其他异常处理方法...
}
```
在上述示例中,使用了 `@ControllerAdvice` 注解将类标记为全局异常处理类。然后,可以为不同类型的异常编写多个异常处理方法,并通过 `@ExceptionHandler` 注解来指定处理的异常类型。在处理方法中,可以根据需要进行异常处理逻辑,并返回合适的响应。
接下来,为了使全局异常处理器生效,需要在应用程序的主类上添加 `@EnableWebMvc` 注解或者是在配置类上添加该注解。
```java
@SpringBootApplication
@EnableWebMvc
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
```
这样,当应用程序中抛出未捕获的异常时,全局异常处理器就会捕获并进行相应的处理。
需要注意的是,全局异常处理器可以处理控制器层以及其他各个层级的异常。如果有多个全局异常处理类存在,Spring Boot会根据异常类型选择最匹配的处理器。
希望以上内容能够对你有所帮助!如有其他问题,请继续提问。
阅读全文