Skip to main content

control_flow_in_finally

Use of '{0}' in a 'finally' clause.

Description

#

The analyzer produces this diagnostic when a finally clause contains a return, break, or continue statement.

Example

#

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

dart
int f() {
  try {
    return 1;
  } catch (e) {
    print(e);
  } finally {
    return 0;
  }
}

Common fixes

#

If the statement isn't needed, then remove the statement, and remove the finally clause if the block is empty:

dart
int f() {
  try {
    return 1;
  } catch (e) {
    print(e);
  }
}

If the statement is needed, then move the statement outside the finally block:

dart
int f() {
  try {
    return 1;
  } catch (e) {
    print(e);
  }
  return 0;
}