0
我從改造,我想實現的錯誤處理,特別是連接超時產生可觀察到的。在錯誤的用戶會被調用得很好,但應用程序仍用了socketTimeout錯誤崩潰。有什麼建議?rxJava錯誤捕獲socketTimeoutException
Observable<History> history = api.returnHistoryRX(pair, String.valueOf(unixTime-3600), String.valueOf(unixTime));
history.onErrorReturn(throwable -> null);
用戶
public void getPriceNow(Observable<List<history>> history, String pair) {
Timestamp timestamp2;
timestamp2 = new Timestamp(System.currentTimeMillis());
history.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(history1 -> {
String currentValue;
if (history1.size()>0){
System.out.println("testing rx");
}
}, e->System.out.println("getPriceNow: error called"));
}
來測試我的超時設置的東西與okhttp
private OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.MILLISECONDS)
.readTimeout(30L, TimeUnit.MILLISECONDS)
.writeTimeout(100L, TimeUnit.MILLISECONDS);
錯誤鏈看起來像這樣不合理的低:
的java.lang。 IllegalStateException:在Scheduler.Worker線程上拋出異常。添加onError
處理。
產生的原因:rx.exceptions.OnErrorNotImplementedException:連接失敗
產生的原因:java.net.SocketTimeoutException:連接失敗
這是100%正確的。我居然發現了墜毀沒有發生由於這些要求,但其他地方的應用進行相同的調用。我刪除了位後導致崩潰我仍然有onErrorReturn的問題沒有發射過,使這一更新修復完全。沒有這個,我可能會一直盯着幾個小時,所以謝謝你! – massphoenix