Currently, the behavior of the library is to catch Exception() when encountered in the user provided callback, surface it to the calling code and shut down the client.
However, for BaseException() encountered in the user provided callback, the BaseException() is not surfaced to the calling code and the client is not shut down.
Make the behavior of the client when BaseException() is encountered consistent with the behavior of the client when Exception() is encountered.
Currently, the behavior of the library is to catch Exception() when encountered in the user provided callback, surface it to the calling code and shut down the client.
However, for BaseException() encountered in the user provided callback, the BaseException() is not surfaced to the calling code and the client is not shut down.
Make the behavior of the client when BaseException() is encountered consistent with the behavior of the client when Exception() is encountered.
Fixes #1107 🦕