I tried back and forth and finally came to the conclusion that we need something more for our exception handling. I invented Exceptions for prominent error situations which can happen with the new API and which are not covered by the existing exceptions. I also added, after some other trials, a JGitInternalException class. Whenever during command execution I receive exceptions on which a caller of our API can't react properly (e.g. low-level IOExceptions) I wrap them into a JGitInternalException. This should make our method signatures smaller and a user doesn't have to catch <n> exceptions which he all doesn't understand and which all lead to the same handling (throwing and error message)
See the javadoc of JGitInternalException