Creation and use of a new `Exception` subclass seems questionable to me here, but... I'll let it slide.