Translating into a custom exception is the way to go here. Bubbling up exceptions from your abstractions is fine for development but not a good experience for users of your API.
I would rather see custom exceptions thrown than rethrowing.