其他分享
首页 > 其他分享> > springboot优雅的异常处理

springboot优雅的异常处理

作者:互联网

springboot全局异常处理

@ControllerAdvice

尽管springboot会对一些异常进行处理,不过对于开发者来说,这还不太便于维护,因此我们需要自己来对异常进行统一的捕获与处理。这里就需要使用上一个注解@ControllerAdvice。

@ControllerAdvice注解:

ControllerAdvice拆分开来就是Controller Advice ,关于Advice,在Spring Aop中可知其是用于封装一个切面所有属性,包括切入点和需要织入的切面逻辑。这里ContrllerAdvice也可以这么理解,其抽象级别应该是用于对Controller进行“切面”环绕的,而具体的业务织入方式则是通过结合其他的注解来实现的。

简单来讲,@ControllerAdvice就是一个Controller增强器,可以对Controller中被@RequestMapping注解的方法增加一些逻辑处理。

常见使用方式:

全局异常处理类

这里我们使用@ControllerAdvice注解来实现全局异常处理。

声明了全局异常处理类之后,我们还需要通过@ExceptionHandler来捕获异常

而这里对异常的处理方式也由我们根据需求而定,因为这里就相当于是一个参数为捕获到的异常的Controller,所以我们可以实现直接返回异常信息,也可以跳转页面等一系列操作。

这里简化一下,就直接捕获Excecption,实际使用中可以再细化到各种不同的异常进行不同的处理。

@ControllerAdvice
public class BaseExceptionHandler {
    /**
     * 异常处理
     * @param e
     * @return
     */
    @ExceptionHandler
    @ResponseBody
    public Result error(Exception e){
        e.printStackTrace();
        return new Result(false, StatusCode.ERROR,e.getMessage()+"请联系XXX进行处理");
    }
}

标签:ControllerAdvice,springboot,处理,捕获,优雅,Controller,注解,异常
来源: https://www.cnblogs.com/changtong1819/p/14507742.html