We also have the option of using the .catch operator. It allows us to catch errors on an existing stream, do something, and pass the exception onwards.
It also allows us to inspect the error and decide which route to take. For example, if we encounter a server error then use a cached version of the request otherwise re-throw.