全局异常处理器在实际项目开发中是一个很重要的工具;对保证代码的正常运行有很重要的作用。当然这样也可以使得用户体验更好,总不可能让用户看到我们后端密密麻麻的报错信息吧。
下面来讲一下如何创建一个全局异常处理器:
1.创建一个全局异常处理类:并添加@RestControllerAdvice注解
2.在类中创建方法用于捕获异常:在方法上添加注解:@ExceptionHandler
、
方法中的形参就是异常的类型。
下面是对注解的简单介绍以及完整的代码:
@RestControllerAdvice:
该注解 由@ControllerAdvice、@ResponseBody组成
而@ControllerAdvice继承了@Component
@RestControllerAdvice本质上是个Component
@ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。
import com.sky.exception.BaseException;
import com.sky.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* 全局异常处理器,处理项目中抛出的业务异常
*/
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
/**
* 捕获业务异常
* @param ex
* @return
*/
@ExceptionHandler
public Result exceptionHandler(BaseException ex){
log.error("异常信息:{}", ex.getMessage());
return Result.error(ex.getMessage());
}
}
这样当代码运行出现对应的异常的时候,就会被捕获,并且执行方法中的代码。