如何在 rxJava 中映射错误?

How do I map errors in rxJava?

如何转换由 rxJava 中的 Observable 编辑的错误 return? 现在我有了这个方法:


@Override
    public Maybe<JsonObject> getUser(String token) {
        return tokenManager.getTokenInfo(token)    //returns a Single<UserInfo>
            .flatMapMaybe(userInfo -> userRepo.findOne(userInfo));
    }

行为是 getTokenInfofindOne 传递的任何异常都会传播到此函数的 return 值的订阅者。是否可以将异常映射到其他东西?喜欢

@Override
    public Maybe<JsonObject> getUser(String token) {
        return tokenManager.getTokenInfo(token)
            mapError(exc -> new AuthException("invalid token"))  //don't let subscriber get raw exc
            .flatMapMaybe(userInfo -> userRepo.findOne(userInfo))
            .mapError(exc -> new NetworkException());


    }

onErrorResumeNext 与所需异常的 error 源一起使用:

return tokenManager.getTokenInfo(token)
       .onErrorResumeNext(exc -> Single.error(new AuthException("invalid token")))
       .flatMapMaybe(userInfo -> userRepo.findOne(userInfo))
       .onErrorResumeNext(exc -> Maybe.error(new NetworkException()));