我偶然发现了这个问题。假设我有一个Func1解析一些json字符串并返回ServerState(Enum)。由于某种原因,客户不知道状态,或者JSON由于某种原因是不好的。
如何从调用Method传播Exception?
public static class ParseProgressFunction implements Func1<String, Observable<ServerState>> {
@Override
public Observable<ServerState> call(String progress) {
try {
final ServerState serverState = ServerParser.parseProgress(progress);
} catch (JSONException e) {
e.printStackTrace();
} catch (UnknownServerStateException e) {
e.printStackTrace();
}
}
}
这是我想要实现的理念:
@Override
public void onReceiveServerState(final Observable<String> state) {
state.flatMap(new ParseProgressFunction());
必须有一些最好的做法,对吧?
复活节快乐
答案 0 :(得分:1)
当您的函数返回一个Observable时,您可以返回一个带有异常的新错误Observable。
return Observable.error(you exception);