У меня есть следующий подписчик для регистрации принятия от поставщика услуг http, но когда URL-адрес искажен, я получаю исключение, которое невозможно отловить, как показано ниже, то есть try-catch не работает.(Когда URL-адрес действителен, никаких проблем).
Как мне сделать этот водонепроницаемый?Я хочу получить "onError", но это не является частью интерфейса Consumer.В данный момент приложение вылетает при этом событии ошибки.Возможно, лучше / проще использовать Http напрямую, а не RX?
try {
someApi.setStationInfo(stationInfo)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.newThread())
.subscribe(new Consumer<StationInfo>() {
@Override
public void accept(StationInfo abi) throws Exception {
System.out.println("TestAppZappPc received accept from endpoint, data: " + abi);
}
});
} catch (Exception e) {
e.printStackTrace();
}
ИСКЛЮЧЕНИЕ:
io.reactivex.exceptions.OnErrorNotImplementedException: время ожидания соединения в io.reactivex.internal.functions.Functions $ OnErrorMissingConsumer.accept (Functions.java:704) в io.reactivex.internal.functions.Functions $ OnErrorMissingConsumer.accept (Functions.java:701) в io.reactivex.internal.observers.LambdaEbserver.java: 77) в io.reactivex.internal.operators.observable.ObservableObserveOn $ ObserveOnObserver.checkTeridity (ObservableObserveOn.java:276) в io.reactivex.internal.operators.observable.ObservableObserveOnbObOnObObOOO) в io.reactivex.internal.operators.observable.ObservableObserveOn $ ObserveOnObserver.run (ObservableObserveOn.java:252) в io.reactivex.internal.schedulers.ScheduledRunnable.run (ScheduledRunnable.jternalre at at io.schedulers.ScheduledRunnable.call (ScheduledRunnable.java:52) в java.util.concurrent.FutureTask.run (FutureTask.java:237) в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:272) в java.utilExolorPecur.java: 1133) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:607) в java.lang.Thread.run (Thread.java:761). Причина: исключение java.net.SocketTimeoutException: время соединенияна java.net.PlainSocketImpl.socketConnect (собственный метод) на java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:334) на java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketIl.Amp.j.Ab.подключиться (AbstractPlainSocketImpl.java:178) в java.net.SocksSocketImpl.connect (SocksSocketImpl.java:356) в java.net.Socket.connect (Socket.java:586) в okhttp3.internal.platform.AndroidPlatform.connectScket.java: 71) по адресу okhttp3.internal.connection.RealConnection.connectSocket (RealConnection.java:240) в okhttp3.internal.connection.RealConnection.connect (RealConnection.java:160) в okhttp3.internal.connection.StreamAllocation.findConnection (StreamAllocation.java:257) в okhttp.internal.connection.find(StreamAllocation.java:135) в okhttp3.internal.connection.StreamAllocation.newStream (StreamAllocation.java:114) в okhttp3.internal.connection.ConnectInterceptor.intercept (ConnectInterceptor.java:42) в okhttp3.internal.orp.продолжить (RealInterceptorChain.java:147) по адресу okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) по адресу okhttp3.internal.cache.CacheInterceptor.intercept (CacheInterceptor.java:93.seter.hinter.proceed (RealInterceptorChain.java:147) в okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) в okhttp3.internal.http.BridgeInterceptor.intercept (BridgeInterceptor.javattp. at. at. at. at. at93)RealInterceptorChain.proceed (RealInterceptorChain.java:147) в okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept (RetryAndFollowUpInterceptor.java:126) в okhttp3.internal.http.RealInteravaorha (Realceptor) (7)в okhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) в okhttp3.logging.HttpLoggingInterceptor.intercept (HttpLoggingInterceptor.java:213) в okhttp3.internal.htxtorokhttp3.internal.http.RealInterceptorChain.proceed (RealInterceptorChain.java:121) в okhttp3.RealCall.getResponseWithInterceptorChain (RealCall.java:200) в okhttp3.RealCall.execute (RealCallPHT)..java: 174) на com.jakewharton.retrofit2.adapter.rxjava2.CallObservable.subscribeActual (CallObservable.java:41) на io.reactivex.Observable.subscribe (Observable.java:10955) на com.jakewharton.retrofit2.adrxjava2.BodyObservable.subscribeActual (BodyObservable.java:34) 2019-05-14 11: 41: 44.728 31475-32204 / com.hdsl.a.zapp E / AndroidRuntime: at io.reactivex.Observable.subscribe (Observable.java:10955) на io.reactivex.internal.operators.observable.ObservableSubscribeOn $ SubscribeTask.run (ObservableSubscribeOn.java:96) в io.reactivex.Scheduler $ DisposeTask.run (Scheduler.java:452) ... еще 7