メインコンテンツにスキップ

dead_code_on_catch_subtype

デッドコード: この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 {
  }
}