Which is the most appropriate way to handle invalid method arguments passed to a public method?
Throw AssertionError
Throw IllegalStateException
Throw IllegalArgumentException
Throw InvalidArgumentException