As a later refactor, it might be useful if this raised something other than `Exception` so that others could catch the specific exception and handle it (rather than having to catch `Exception`, which could be a lot of different things).