Android AppにRxJavaアダプターを設定してRetrofitを使用しています。問題は、一部のデバイスでRetrofitがConnectionException
を発射し、他の一部のデバイスで発射がUnknownHostException
であるという報告がいくつかあります。これは、onErrorResume()
メソッドを使用して他のrx.Observables
を接続するのはかなり困難です。さらに悪いことに、両方の例外が共有する唯一の共通の親はかなり一般的なIOException
です。これを統一する方法はありますか?RetrofitでUnknownHostExceptionとConnectionExceptionが発生する
私はUnknownHostException
ケースのみを扱っていました。しかし、今私もこのConnectionException
を持っていて、誰が他のどのデバイスで他の例外を知っているのですか?
私はこの2つの例外をNoInternetConnectionException
のような一般的なカスタム例外にマップできます。しかし、そこにこの例外の多くがありますか?
UPDATE:だから、基本的にはサムスンS7でUnkownHostExceptionがにConnectionExceptionが発射され、別のデバイスネクサスでは、解雇されている
mNetworkUserRepository.getUserList()
.onErrorResule(ObservableUtils.whenExceptionIs(RetrofitError.class), mUserDatabase.getUserList()) //Server side error
.onErrorResule(ObservableUtils.whenExceptionIs(UnknownHostException.class), mUserDatabase.getUserList()) //No internet
.onErrorResule(ObservableUtils.whenExceptionIs(ConnectionException.class), mUserDatabase.getUserList()) //ANOTHER EXCEPTION FOR THE SAME THING
.subscribe(new MySubscriber<List<Users>>() {
@Override
public void onNext(List<Users> response) {
callback.showOnUI(response);
}
});
:
は、現在、私のインターアクター/ユースケースは、同じようなことをやっています。私はこれが好きではありません、他に「インターネットなし」の例外がいくつありますか?私はRetrofitがUnknownHostExceptionを発しましたが、インターネットに接続せずにhttpリクエストをしようとしただけです。これをどのようにグループ化できますか?私は別のデバイスやもののためにN onResumeErrorsを添付したくない
正確な質問は何ですか?あなたは例外タイプごとに異なるタイプのエラーを区別しようとしていますか?何がジェネリック例外を使用して問題ですか? – yosriz
@yosriz私は自分の答えを更新しました。あなたがより多くの情報を必要とするかどうかを教えてください。 – 4gus71n
ちょうど 'IOException'を捕まえて、あなたが設定しています(' whenExceptionIs'メソッドがクラスの等価性を使用していないと仮定します)。 –