Throw exceptions if you mess up your code!