use catchError in Future and onError in Stream