throwing the illegal argument exceptions instead of the general exceptions