Skip to main content

throw_in_finally

Use of '{0}' in 'finally' block.

Description

#

The analyzer produces this diagnostic when a throw statement is found inside a finally block.

Example

#

The following code produces this diagnostic because there is a throw statement inside a finally block:

dart
void f() {
  try {
    // ...
  } catch (e) {
    // ...
  } finally {
    throw 'error';
  }
}

Common fixes

#

Rewrite the code so that the throw statement isn't inside a finally block:

dart
void f() {
  try {
    // ...
  } catch (e) {
    // ...
  }
  throw 'error';
}