It seems more appropriate to return a boolean instead of throwing exception since the argument is not actually illegal