JsonオブジェクトをJavaオブジェクト(POJO)に逆シリアル化するためにjacksonオブジェクトマッパーを呼び出すRxJavaを使用するメソッドがあります。 readValueメソッドは、自分のメソッドの呼び出し側に処理またはスローされなければならないIOExceptionをスローします。私はここでそれを扱うべきではなく、むしろ私の呼び出し側にそれを処理させるべきです。 RxJavaでこれを行うにはどうすればいいですか?通常は、私のメソッドシグネチャにはthrows IOException
が追加されています。ここでRxJava 1.xを使用して、発信者まで例外をスローする方法
は私のコードです:
public Observable<T> findByIdAsync(String id) throws IOException {
return datasource
.getBucket()
.async()
.get(String.valueOf(id), RawJsonDocument.class)
.map(json -> objectMapper.readValue(json.content(), getType()));
}
objectMapper.readValue(json.content(), getType())
はIOException
をスローしますので、それはキャッチまたはスローされるようにいずれかがあります。
呼び出し元が 'onError'を実装しておらず、例外がスローされた場合、' OnErrorNotImplementedException'が得られます。実装されている場合、 'onError'ブロックで処理されます。 'throws 'を持つことは、RxJavaで実装する方法ではありません。 –