The audio transcode server is now feature-complete. But unfortunately, it is not very robust for a server that should be able to run for months without issues. This can be seen easily if, instead of an MP3 file, a WAV or FLAC file is provided, or if the S3 server is not started when a transcode request occurs. In these cases, an error is raised, and the server stops.
Chapter 4, Exploring Observables and Observers, explained several ways to handle errors. The time has come to see how to apply them in a real application. There are two main ways to handle errors in RxPY—with the on_error handler, or with dedicated operators. The error handler is already used in all custom observables and this allows you to propagate the errors. However, there are several kinds of error that should be handled gracefully. Typically, if an audio-encoding error occurs, then an...