Android 接收中的错误处理
我正在尝试处理Rx android网络中的错误,但无法做到这一点可能会有所帮助Android 接收中的错误处理,android,rx-java,rx-android,Android,Rx Java,Rx Android,我正在尝试处理Rx android网络中的错误,但无法做到这一点可能会有所帮助 getCompositeDisposable().add(getManager().callApi(request) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.ui()) .subscribe(apiResponse -> Log.d(TAG,"success"), t
getCompositeDisposable().add(getManager().callApi(request)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.ui())
.subscribe(apiResponse -> Log.d(TAG,"success"),
throwable -> Log.e(TAG,throwable.getMessage)));
我想处理subscribe()中的错误
日志:
io.reactivex.exceptions.OnErrorNotImplementedException: java.net.ConnectException: Failed to connect
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:704)
at io.reactivex.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:701)
at io.reactivex.internal.observers.ConsumerSingleObserver.onError(ConsumerSingleObserver.java:47)
at io.reactivex.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:79)
at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7231)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: com.androidnetworking.error.ANError: java.net.ConnectException: Failed to connect to /192.168.1.42:8484
at com.rx2androidnetworking.Rx2InternalNetworking$SimpleANObservable.subscribeActual(Rx2InternalNetworking.java:235)
at io.reactivex.Observable.subscribe(Observable.java:10981)
at io.reactivex.internal.operators.observable.ObservableSingleSingle.subscribeActual(ObservableSingleSingle.java:35)
at io.reactivex.Single.subscribe(Single.java:2801)
at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)
at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
不幸的是,我不能发表评论。你能说得更具体些吗?你犯了什么错误?使用rx处理错误的常见方法如下所示:
Subscription subscribe = apiServices.endpointCall(...parameters...)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.unsubscribeOn(Schedulers.io());
.subscribe(response -> {
//do something with response
}, throwable -> {
//do something with error
});
其中apiService是通过使用
service = retrofit.create(ApiServices.class);
这看起来不像是生成日志的代码当我尝试连接到5G网络时会抛出此异常,否则它工作正常@laaltoI我非常确定我的示例应该可以工作,但如果您仍然有问题,您可以尝试此解决方案,在该解决方案下,您可以使用模板找到示例