only_ throw_ errors
Only throw instances of classes extending either Exception or Error.
Details
#
DO
throw only instances of classes that extend
dart.core.Error
or
dart.core.Exception
.
Throwing instances that do not extend
Error
or
Exception
is a bad practice;
doing this is usually a hack for something that should be implemented more
thoroughly.
BAD:
void throwString() {
throw 'hello world!'; // LINT
}
GOOD:
void throwArgumentError() {
Error error = ArgumentError('oh!');
throw error; // OK
}
Enable
#
To enable the
only_throw_errors
rule, add
only_throw_errors
under
linter > rules
in your
analysis_options.yaml
file:
linter:
rules:
- only_throw_errors
If you're instead using the YAML map syntax to configure linter rules,
add
only_throw_errors: true
under
linter > rules:
linter:
rules:
only_throw_errors: true
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Report an issue.