The CPython `requests` library has its own set of exceptions: https://requests.readthedocs.io/en/latest/api/#requests.ConnectTimeout which are subclasses of system exceptions. Here is the source, showing the class definitions: https://requests.readthedocs.io/en/latest/_modules/requests/exceptions/ I think using some subset of the `requests` exceptions might be nice for writing compatible code and one with clearer exceptions.