add exception so that inheriting classes may throw them

this base class should probably be modified, but not in a release branch