Why is `Exception` used as the type and not a subclass? I don't see a use case for throwing exception of the type `Exception` at all. It really should be an abstract class.