The message describes the erroneous argument.
Existing code may be using message to hold the invalid value.
If the message is not a String, it is assumed to be a value instead
of a message.
Source
ArgumentError([this.message])
: invalidValue = null,
_hasValue = false,
name = null;