Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados — FCC 2024

Banco de DadosBanco de Dados
Código
fc071918
Banca
FCC
Órgão
TRT - 20ª REGIÃO (SE)
Ano
2024
Nível
Superior
Cargo
Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação
Um servidor Node.js precisa processar várias chamadas de API assíncronas para realizar operações em um banco de dados. É necessário garantir que as operações sejam executadas na ordem correta e que os erros sejam tratados adequadamente, evitando que falhas comprometam a execução das próximas chamadas. Nesse contexto e em condições ideais, a maneira mais apropriada de estruturar o código para garantir a sequência correta e o tratamento de erros adequado é
  1. Ausar Promise.all() para garantir a ordem e ignorar o tratamento de erros, já que o Node.js gerencia os erros automaticamente.
  2. Benvolver as chamadas assincronas em um bloco try/catch e usar await.
  3. Cusar then(), catch(), finally() e execute() em todas as chamadas de métodos da classe Connection.
  4. Dfazer todas as chamadas assincronas usando a função asynchronous/wait com try/catch para tratar as exceções.
  5. Ecolocar todas as chamadas assíncronas em uma função setTimeout com throws para tratar exceções.
Revelar gabarito e comentário

GabaritoB — envolver as chamadas assincronas em um bloco try/catch e usar await.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Node.js: Chamadas Assíncronas com Ordem e Tratamento de Erros

Gabarito: letra B. Para garantir a execução sequencial de chamadas assíncronas em Node.js com tratamento adequado de erros, o padrão correto é envolver as chamadas em um bloco try/catch e usar await — isso assegura que cada operação aguarde a anterior e que exceções sejam capturadas sem interromper o fluxo. As demais alternativas propõem abordagens incorretas ou imprecisas.

  1. 1async/await
  2. 2try/catch
  3. 3Ordem garantida
  4. 4Erro tratado
LEVEL · soulevel.com.br

Análise das Alternativas

Alternativa A — ❌ Incorreta

Promise.all() executa todas as promises em paralelo, não em sequência. Além disso, se uma promise rejeitar, a promise retornada por Promise.all() rejeita imediatamente, não ignorando erros. A afirmação de que "Node.js gerencia os erros automaticamente" é falsa; o tratamento deve ser explícito.

Alternativa B — ✅ Correta ⟵ GABARITO

O uso de async/await com try/catch é a maneira mais apropriada e amplamente recomendada para executar operações assíncronas sequencialmente, garantindo que cada await espere a conclusão da Promise anterior e que qualquer erro seja capturado pelo bloco catch.

Alternativa C — ❌ Incorreta

A sugestão de usar then(), catch(), finally() e execute() em todas as chamadas é vaga e execute() não é um método padrão do Node.js para encadeamento de Promises. Embora then() e catch() sejam válidos, a abordagem com await é mais legível e adequada para sequencialidade.

Alternativa D — ❌ Incorreta

A alternativa menciona "asynchronous/wait" — o termo correto é async/await. Embora a ideia de usar try/catch esteja presente, a nomenclatura incorreta e a falta de clareza tornam a opção imprecisa. A alternativa B é a que descreve corretamente o padrão.

Alternativa E — ❌ Incorreta

setTimeout não é apropriado para controlar a ordem de chamadas assíncronas nem para tratamento de erros. Lançar exceções dentro de setTimeout não interrompe o fluxo principal de forma previsível e não é uma prática recomendada.

PEGA ESSA DICA!

Em questões sobre Node.js e assincronismo, lembre-se: para chamadas sequenciais com tratamento de erros, o padrão é async/await + try/catch. Para execução paralela (sem dependência), use Promise.all() combinado com try/catch para capturar falhas.

Gabarito: letra B.

Link permanente: /questoes/fc071918