Contents
Contents

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:

dart
void throwString() {
  throw 'hello world!'; // LINT
}

GOOD:

dart
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:

analysis_options.yaml
yaml
linter:
  rules:
    - only_throw_errors