My point is this: if the argument is not optional, then we should assert the provided value is valid. Do not convert invalid values into defaults.

That way when a problem occurs, the error is raised as close to the place of the error as possible, which makes the troubleshooting and debugging much easier.