In my opinion, throwing an Exception isn't very specific. I chose to use IllegalArgumentException because it kind of suits this, and I didn't want to create a new Exception class just for this.