>the argument passed will never come directly from the application user input and failure to
>comply with the requirement is a coding error?
An assertion is the most intuitive in this case.