I know that this question can appear pretty simple, but the resources on the web about Observables and error handling aren't so great (or maybe I'm just bad at searching).

I have a http request that returns an *Observable* of *Response*, these Responses can contain either data or an error message. If it contains data I want to extract it and parse it, if it contains the error message I want to skip all the other operators (about the parsing) and execute the error function in the subscriber.

I can do all this things throwing an Error:

```
http.get(...).
...
.do(res=>{
  if(res.error) throw new Error(res.error.message);
  return res;
})

```

and it works, it skips all the operators and it execute the error function. The problem is that, after the error, the *Subscriber* stops and doesn't accept data anymore.

If I analyze the Subscriber after the error, I notice that the properties **closed** and **isStopped** are set to *true* both. I want to prevent this, I want to keep the Observable active also after the errors. How can I do it?

Thank you