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;