g0c*_*33k 3 java lambda exception-handling reactive-programming rx-java
我试图习惯rxjava
,我试图QuoteReader
在Observable中调用下面的内容.我不知道如何处理抛出的异常,
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;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我想写的rx代码,
rx.Observable.just(new QuoteReader().getQuote()) //compile time error saying unhandled exception
.subscribe(System.out::println);
Run Code Online (Sandbox Code Playgroud)
我应该如何更新代码来处理异常.谢谢!
使用fromCallable
它允许你的方法抛出(另外,它会被懒惰地评估,而不是在你进入Observable世界之前):
rx.Observable.fromCallable(() -> new QuoteReader().getQuote())
.subscribe(System.out::println, Throwable::printStackTrace);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2708 次 |
最近记录: |