Today ClientException is a checked exception, so must be caught explicitly.
But in practice, what we do with it is to rethrow it as a ClientRuntimeException, RuntimeException, CmisRuntimeException, CaseManagementRuntimeException or various others, or return a default value with optionally logging an error.
Most of the rethrow cases could be eliminated if we made ClientException a RuntimeException. Also the API signatures would be simpler.