Pular para o conteúdo principal

unawaited_return_in_try_block

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

Returning a 'Future' without 'await' inside a try block.

Descrição

#

O analisador produz este diagnóstico quando um Future é retornado de dentro de um bloco try, em uma função async, sem aguardar o Future retornado com await.

Exemplo

#

O código a seguir produz este diagnóstico porque o Future retornado por futureString é retornado sem usar await. Isso pode levar a um comportamento inesperado, porque as exceções lançadas pelo Future não serão capturadas pelo bloco catch.

dart
Future<String> futureString(Future<String> value) async {
  try {
    return value;
  } catch (e) {
    print(e);
    return 'default';
  }
}

Correções comuns

#

Adicione await antes do Future retornado:

dart
Future<String> futureString(Future<String> value) async {
  try {
    return await value;
  } catch (e) {
    print(e);
    return 'default';
  }
}

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