【发布时间】:2023-03-22 14:33:01
【问题描述】:
我正在尝试习惯 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);
我应该如何更新代码来处理异常。谢谢!
【问题讨论】:
-
您应该将代码包装在 try/catch 块中,或者声明您的方法会引发异常。
标签: java lambda exception-handling rx-java reactive-programming