I see Error is derived from EnvironmentError in shutil.py. class Error(EnvironmentError): pass I'm wondering why EnvironmentError can not be raised directly. Why Error is raised instead?