跳到主内容

control_flow_in_finally

在 'finally' 子句中使用 '{0}'。

描述

#

finally 子句包含 returnbreakcontinue 语句时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息,因为 finally 块内包含 return 语句

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

常见修复方法

#

如果不需要该语句,则将其删除;如果块为空,则删除 finally 子句

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

如果需要该语句,则将其移到 finally 块外部

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