springboot全局异常处理
时间: 2023-09-03 10:15:28 浏览: 46
在 Spring Boot 中,我们可以使用 @ControllerAdvice 注解来实现全局异常处理。具体步骤如下:
1. 创建一个异常处理类,使用 @ControllerAdvice 注解标注,并在类上添加 @ResponseBody 注解,使其能够返回 JSON 格式的数据。
```java
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseResult handleException(Exception e) {
// 处理异常
}
}
```
2. 在 handleException 方法中编写异常处理逻辑,并返回一个自定义的 ResponseResult 对象,该对象包含了异常码和异常信息等。
```java
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseResult handleException(Exception e) {
// 打印异常堆栈信息
log.error("系统异常:", e);
// 构建返回结果
return ResponseResult.fail(ResultCode.SYSTEM_ERROR);
}
}
```
3. 在 Spring Boot 主类中添加 @EnableWebMvc 注解,以启用 Spring MVC 的功能。
```java
@SpringBootApplication
@EnableWebMvc
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
这样,当系统抛出异常时,就会自动进入到 GlobalExceptionHandler 类中的 handleException 方法中进行处理,并将处理结果以 JSON 格式返回给前端。