Pular para o conteúdo principal

body_might_complete_normally_catch_error

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

This 'onError' handler must return a value assignable to '{0}', but ends without returning a value.

Descrição

#

O analisador emite este diagnóstico quando a closure passada para o parâmetro onError do método Future.catchError precisa retornar um valor não nulo (por causa do argumento de tipo do Future), mas pode retornar null implicitamente.

Exemplo

#

O código a seguir produz este diagnóstico porque a closure passada para o método catchError precisa retornar um int, mas não termina com um return explícito, fazendo com que retorne null implicitamente:

dart
void g(Future<int> f) {
  f.catchError((e, st) {});
}

Correções comuns

#

Se a closure deve, em alguns casos, retornar um valor não nulo, adicione um return explícito à closure:

dart
void g(Future<int> f) {
  f.catchError((e, st) {
    return -1;
  });
}

Se a closure deve sempre retornar null, altere o argumento de tipo do Future para void ou Null:

dart
void g(Future<void> f) {
  f.catchError((e, st) {});
}

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ê.