gpt4 book ai didi

java - rxjava 中的异常处理

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:54 24 4
gpt4 key购买 nike

我正在尝试习惯 rxjava 并且我正在尝试在 Observable 中调用下面的 QuoteReader。我不确定如何处理抛出的异常,

public class QuoteReader {
public Map<String, Object> getQuote() throws IOException{
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().url("http://quotes.rest/qod.json").build();
Gson gson = new Gson();
Map<String, Object> responseMap = null;

try(Response response = okHttpClient.newCall(request).execute()) {
responseMap = gson.fromJson(response.body().string(), Map.class);
System.out.println("response map : "+responseMap);
} catch(IOException ioe) {
ioe.printStackTrace();
throw ioe;
} finally {
okHttpClient = null;
request = null;
}
return responseMap;
}
}

以下是我正在尝试编写的 rx 代码,

rx.Observable.just(new QuoteReader().getQuote()) //compile time error saying unhandled exception
.subscribe(System.out::println);

我应该如何更新代码来处理异常。谢谢!

最佳答案

使用允许您的方法抛出的 fromCallable(另外,它会被延迟评估,甚至在您进入 Observable 世界之前都不会评估):

rx.Observable.fromCallable(() -> new QuoteReader().getQuote())
.subscribe(System.out::println, Throwable::printStackTrace);

关于java - rxjava 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com