Pular para o conteúdo principal

dead_code_on_catch_subtype

Detalhes sobre o diagnóstico 'dead_code_on_catch_subtype' produzido pelo analisador do Dart.

Dead code: This on-catch block won't be executed because '{0}' is a subtype of '{1}' and hence will have been caught already.

Descrição

#

O analisador emite este diagnóstico quando é encontrada uma cláusula catch que não pode ser executada porque está depois de uma cláusula catch que captura o mesmo tipo ou um supertipo do tipo da cláusula. A primeira cláusula catch que corresponde ao objeto lançado é selecionada, e a cláusula anterior sempre corresponde a tudo o que a cláusula destacada poderia corresponder, então a cláusula destacada nunca será selecionada.

Exemplo

#

O código a seguir produz este diagnóstico:

dart
void f() {
  try {
    // ...
  } on num {
    // ...
  } on int {
    // ...
  }
}

Correções comuns

#

Se a cláusula deve poder ser selecionada, mova-a para antes da cláusula genérica:

dart
void f() {
  try {
    // ...
  } on int {
    // ...
  } on num {
    // ...
  }
}

Se a cláusula não precisar poder ser selecionada, remova-a:

dart
void f() {
  try {
    // ...
  } on num {
    // ...
  }
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.