RxJava+Retrofit+OkHttp深入浅出-终极封装七(异常处理)

本文介绍了如何对RxJava+Retrofit+OkHttp的异常处理进行深入封装,包括定义回调异常类、错误码、自定义运行时异常、异常工厂类和统一的回调结果处理,以实现统一的错误展示和提示。文章提供了优化方案和实际应用中的扩展思路。
摘要由CSDN通过智能技术生成

RxJava+Retrofit+OkHttp深入浅出-终极封装七(异常处理)

背景

在前面Rxjava+ReTrofit+okHttp深入浅出-终极封装专栏我们已经全面的封装了一套可以投入实战的框架,最近开设了微信群中有兄弟说异常处理这块可以优化优化并给出了建议参考项目,果断重新将之前的封装完善走起来,将请求过程中的处理统一封装起来,回调给调用者,根据自定义回调类型方便查询错误类型和信息。


前提

本章的内容基于掌握了前面封装的原理以后,学期起来才能完全的理解

Rxjava+ReTrofit+okHttp深入浅出-终极封装专栏


效果:

这里写图片描述

通过统一的异常处理,可以实现各种异常的统一处理,然后通过统一回调给使用者,方便统一展示和显示提示给用户

  • 第一条错误:故意修改了service里面方法地址,导致错误

  • 第二条错误:过期token,服务器返回的错误信息


优化之路

1.定义回调异常类

定义的回调类,方便回调接口统一处理,其中包含错误code和错误信息displayMessage

public class ApiException extends Exception{
   
    /*错误码*/
    private int code;
    /*显示的信息*/
    private String displayMessage;

    public ApiException(Throwable e) {
        super(e);
    }

    public ApiException(Throwable cause,@CodeException.CodeEp int code, String showMsg) {
        super(showMsg, cause);
        setCode(code);
        setDisplayMessage(showMsg);
    }

    @CodeException.CodeEp
    public int getCode() {
        return code;
    }

    public void setCode(@CodeException.CodeEp int code) {
        this.code = code;
    }

    public String getDisplayMessage() {
        return displayMessage;
    }

    public void setDisplayMessage(String displayMessage) {
        this.displayMessage = displayMessage;
    }
}

2.定义错误码

自定义错误码,相关的错误码可以自行设定规则,框架现在给出了常用的错误码定义,采用上一章讲解的Android注解方式来定义错误码的使用:

public class 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值