Also, it kind of feels like this should be an InvalidArgumentException. Not sure, just something to consider.