处理函数中的异常

时间:2015-04-05 17:10:34

标签: json error-handling rx-java

我偶然发现了这个问题。假设我有一个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());

必须有一些最好的做法,对吧?

复活节快乐

1 个答案:

答案 0 :(得分:1)

当您的函数返回一个Observable时,您可以返回一个带有异常的新错误Observable。

return Observable.error(you exception);