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 {
}
}