What types of exceptions do we raise in existing code? Should we introduce a common base class for all exceptions?