目錄
目錄

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