A `nil` argument would be programmer error, whereas a string would be an invalid value provided by the user, and more suitable for returning an `NSError`.

This matches the convention of many Foundation constructors.