跳到主要内容

rethrow_outside_catch

rethrow 必须在 catch 子句内部。

描述

#

rethrow 语句位于 catch 子句之外时,分析器会生成此诊断信息。rethrow 语句用于再次抛出捕获到的异常,但在 catch 子句之外没有捕获到的异常。

示例

#

以下代码会生成此诊断信息,因为 rethrow 语句位于 catch 子句之外

dart
void f() {
  rethrow;
}

常见修正方法

#

如果您试图重新抛出异常,请将 rethrow 语句包装在 catch 子句中

dart
void f() {
  try {
    // ...
  } catch (exception) {
    rethrow;
  }
}

如果您试图抛出一个新异常,请将 rethrow 语句替换为 throw 表达式

dart
void f() {
  throw UnsupportedError('Not yet implemented');
}