SpringBoot 统一异常处理

@Order(1)
@RestControllerAdvice
public class SqlExceptionHandler {

    @ExceptionHandler(SQLIntegrityConstraintViolationException.class)
    public AppResult errorHandler(Exception ex) {
        Log.get().error(ex);
        return AppResult.error("请检查唯一项是否冲突!");
    }
}
@Order(100)
@RestControllerAdvice
public class OtherExceptionHandler {

    @ExceptionHandler(Exception.class)
    public AppResult errorHandler(Exception ex) {
        Log.get().error(ex);
        return AppResult.error("系统异常!");
    }

}
1. 可用定义多个异常处理类,使用@Order注解表示捕获优先级,值越小,优先级越高
2. 把Exception.class优先级调到最低,表示没有捕获到最后进入备选方案
3. AppResult 为自定义的输出对象
4. Log 为Hutool工具包里的日志对象

你可能感兴趣的:(springboot,springboot)