only_throw_errors
Only throw instances of classes extending either Exception or Error.
This rule is available as of Dart 2.0.0.
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
}
Usage
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