2015-04-05 3 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

Как ваша функция возвращает наблюдаемом, вы можете вернуть новую ошибку Observable с исключением.

return Observable.error(you exception); 
Смежные вопросы