springboot全局异常处理
时间: 2023-09-27 10:09:10 浏览: 101
在 Spring Boot 应用中,我们可以通过自定义异常处理器来全局处理异常,以下是一个简单的示例:
1. 创建一个自定义的异常类,例如:
```java
public class MyException extends RuntimeException {
private Integer code;
private String message;
public MyException(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
}
```
2. 创建一个全局异常处理器,例如:
```java
@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {
@ExceptionHandler(MyException.class)
public Result handleMyException(MyException e) {
return Result.fail(e.getCode(), e.getMessage());
}
@ExceptionHandler(Exception.class)
public Result handleException(Exception e) {
return Result.fail(-1, "系统异常,请联系管理员!");
}
}
```
在上面的代码中,`@ControllerAdvice` 注解表示这是一个全局异常处理器,`@ExceptionHandler` 注解表示该方法处理的异常类型,`@ResponseBody` 注解表示返回的是一个 JSON 数据。
3. 在控制器中抛出自定义异常,例如:
```java
@RestController
public class DemoController {
@GetMapping("/test")
public Result test() {
throw new MyException(1001, "自定义异常测试");
}
}
```
在上面的代码中,当访问 `/test` 接口时,会抛出一个自定义异常。
通过以上步骤,我们就可以实现全局异常处理了。当发生异常时,会根据异常类型自动匹配对应的异常处理方法,返回对应的 JSON 数据。
阅读全文