dead_code_on_catch_subtype
死代码:这个 on-catch 子句不会被执行,因为 '{0}' 是 '{1}' 的子类型,因此在此之前就已经被捕获了。
描述
#当分析器发现一个 catch
子句无法执行时,会产生此诊断,因为该子句位于捕获相同类型或该子句类型的超类型的 catch
子句之后。选择第一个匹配抛出对象的 catch
子句,而之前的子句总是匹配高亮显示的子句能够匹配的任何内容,因此高亮显示的子句永远不会被选中。
示例
#以下代码会产生此诊断
dart
void f() {
try {
} on num {
} on int {
}
}
常见修复方法
#如果该子句应该可被选中,则将其移到通用子句之前
dart
void f() {
try {
} on int {
} on num {
}
}
如果该子句不需要可被选中,则将其移除
dart
void f() {
try {
} on num {
}
}