ObservableEmitterのonErrorには渡すThrowableインスタンスが必要ですが、何らかのエラーデータがあればベストプラクティスは何ですか?以下のように:AndroidのRxJavaでonError + Throwableを正しく使用する方法は?
Observable<JSONObject> o1 = Observable.create(new ObservableOnSubscribe<JSONObject>() {
@Override
public void subscribe(final ObservableEmitter<JSONObject> e) throws Exception {
RemoteApi.getInstance().addR(context, tag, new AsyncCallback<JSONObject, Error>() {
@Override
public void onSuccess(JSONObject result) {
if(e.isDisposed()) {
return;
}
e.onNext(result);
e.onComplete();
}
@Override
public void onFailure(Error error) {
if(e.isDisposed()) {
return;
}
e.onError(new Throwable(error.getCode() + " " + error.getMessage()));
}
});
}
});
正しくエラーデータを渡すには?私はちょうどこの種の例外のラッパークラスを作成します:
private static class RxJavaExceptionError extends Exception {
private Object object;
public RxJavaExceptionError(Object object) {
this.object = object;
}
public Object get() {
return object;
}
}
私はオブジェクトを使ってデータを渡します。しかし、RxJavaExceptionErrorかどうかを判断するためにinstanceofを使う必要があることがわかりました。これはあまりうれしくありません。では、この場合のベストプラクティスは何ですか?私はこれが珍しいケースではないと思う。
私はそれをはっきりと表現しましたか?私の英語はあまり良くありません。