Why not extend the ClientException so we can change the message also without the constructor?

The main question here: What is the goal. Why do we have to catch ClientExceptions here? Is it necessary? We should define when exactly we have a client and when a connection exception. This should probably be documented in the object ...