【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】04、统一处理异常

本节讨论如何使用Spring的异常处理机制,当我们程序出现错误时,以相同的一种格式,把错误信息返回给客户端

1、创建一些自定义异常

public class TipsException extends Exception {
    private static final long serialVersionUID = 2784987176856514682L;

    public TipsException(String string) {
        super(string);
    }

}

2、使用@RestControllerAdvice创建一个异常处理的RESTful控制器,当其他控制器抛出异常时,会被这个控制器截获并处理

@RestControllerAdvice
public class ExceptionController {

    @ExceptionHandler(TipsException.class)
    @ResponseStatus(HttpStatus.METHOD_NOT_ALLOWED)
    public AppResult tips(TipsException e) {
        return new AppResult().error(e.getMessage());
    }
    @ExceptionHandler()
    @ResponseStatus(HttpStatus.ALREADY_REPORTED)
    public AppResult spittleNotFound(Exception e) {
        return new AppResult().error("内部错误!请联系系统管理员!" + e.getClass().getTypeName() + e.getMessage());
    }

}

这里的异常处理会返回一个和普通控制器一样的AppResult对象,保证任何时候返回给客户端的值都是统一格式的

3、运行测试

猜你喜欢

转载自www.cnblogs.com/LiveYourLife/p/9173166.html