跳到主要内容

dead_code_catch_following_catch

死代码:'catch (e)' 或 'on Object catch (e)' 后面的 catch 子句永远无法到达。

描述

#

当找到一个 catch 子句无法执行,因为它跟在形式为 catch (e)on Object catch (e)catch 子句之后时,分析器会产生此诊断。第一个匹配抛出对象的 catch 子句会被选中,而这两种形式都会匹配任何对象,因此它们后面的任何 catch 子句都不会被选中。

示例

#

以下代码会产生此诊断

dart
void f() {
  try {
  } catch (e) {
  } on String {
  }
}

常见修复方法

#

如果该子句应可被选中,请将其移到通用子句之前

dart
void f() {
  try {
  } on String {
  } catch (e) {
  }
}

如果该子句不需要被选中,请将其移除

dart
void f() {
  try {
  } catch (e) {
  }
}