Description
In its current form, HCatClient::getPartition() throws the same HCatException for the following cases:
1. When the client fails to connect to the HCat-server (because of network error or downtime).
2. When the partition specified by the partition-spec doesn't exist.
There really should be a distinction between these cases. #1 is an exceptional case that we don't expect to happen often. #2, on the other hand, is a valid return, that's likely to happen. It might make sense to continue to throw exceptions for #1, but return a null (or throw a different, more specific exception) for #2.
The same holds for HCatClient::listPartitionsByFilter().