Client uses JsonRpcException classes

Working a bit more with your code I discovered you have exception classes for the server but not for the client. I changed the client exceptions to use the same than server. I also added a new one for Curl errors (JsonRpcCurlException).