spring全局异常捕捉
时间: 2023-10-28 09:07:38 浏览: 67
Spring Boot 捕捉全局异常 统一返回值的问题
在Spring中,可以通过@ControllerAdvice注解来定义全局异常处理器,用于捕获所有Controller中抛出的异常。
具体实现步骤如下:
1.在项目中创建一个类,使用@ControllerAdvice注解标注该类。
2.在该类中定义一个方法,使用@ExceptionHandler注解标注该方法,并指定该方法可以处理的异常类型。
3.在处理方法中编写异常处理逻辑,如记录异常日志、返回自定义错误信息等。
下面是一个简单的示例:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public Result handleException(Exception e) {
//记录异常日志
log.error("系统异常:", e);
//返回自定义错误信息
return Result.fail("系统繁忙,请稍后再试!");
}
}
```
在上面的示例中,我们定义了一个全局异常处理器,用于处理所有Controller中抛出的异常。当发生异常时,会先记录异常日志,然后返回一个自定义的错误信息。
需要注意的是,@ControllerAdvice注解只能处理Controller层抛出的异常,对于Service层、Dao层等其他层抛出的异常需要在相应的层进行处理。
阅读全文