use Exception::Class to throw typed exception