I honestly think that trying to standardize exceptions is a bad idea. They _should_ be specific to specific libraries or applications, otherwise they're not much different from just throwing Exception.
With a single hierarchy it becomes difficult, but with a multiple inheritance design it makes sense to have some standards. For instance whether the exceptional situation is permanent or warrants a retry.