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:
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:
void f() {
try {
// ...
} on int {
// ...
} on num {
// ...
}
}
Se a cláusula não precisar poder ser selecionada, remova-a:
void f() {
try {
// ...
} on num {
// ...
}
}
Salvo indicação em contrário, a documentação neste site reflete Dart 3.13.7. Relatar um problema.
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ê.