p>
<p>When deciding that a function throws an error,
the conditions where it happens should be clearly described,
and they should be detectable and predictable,
so the programmer using the function can avoid triggering the error.</p>
<p>Such descriptions often uses words like
"must" or "must not" to describe the condition,
and if you see words like that in a function's documentation,
then not satisfying the requirement
is very likely to cause an error to be thrown.</p>
<p>Example (from <a href="dart-core/St