2024年4月1日发(作者:)

Retrofit+RxJava 优雅的处理服务器返回异常、错误

异常&错误

实际开发经常有这种情况,比如登录请求,接口返回的

信息包括请求返回的状态:失败还是成功,错误码,User对象等等。如果网络等原因

引起的登录失败可以归结为异常,如果是用户信息输入错误导致的登录失败算是错误。

假如服务器返回的是统一数据格式:

/**

* 标准数据格式

* @param

*/

public class Response {

public int state;

public String message;

public T data;

}

网络异常导致的登录失败,在使用Retrofit+RxJava请求时都会直接调用subscribe

的onError事件;

密码错误导致的登录失败,在使用Retrofit+RxJava请求时都会调用subscribe的

onNext事件;

无论是异常还是错误,都要在subscribe里面处理异常信息,如下代码:

tance().login("username", "password")

.subscribe(new Observer>() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}