2015-04-05 73 views
-1

我偶然發現了這個問題。可以說我有一個Func1,它解析了一些json字符串並返回ServerState(Enum)。出於某種原因,國家不能被客戶所未知,或者JSON由於某種原因而不好。函數處理異常

如何從調用方法傳播異常?

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

由於你的函數返回一個觀察的,你可以返回一個新的錯誤可觀察你的例外。

return Observable.error(you exception);