Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2025
Programação›Linguagens de programação
Código
ce194808
Banca
CESPE / CEBRASPE
Órgão
ANM
Ano
2025
Nível
Superior
Cargo
Especialista em Recursos Minerais - Especialidade: Geologia, Geografia, Geofísica, Engenharia de Minas, Agrônoma, Florestal, Civil, Ambiental, Arquitetura ou Tecnologia da Informação
Considerando o script Python que precedente, julgue o próximo item.Se um erro do tipo ValueError ocorrer na conversão dentro do bloco try:, o programa será encerrado imediatamente, sem exibir a mensagem Erro: Entrada inválida. Digite um número válido..
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoE — Errado
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”.
Tratamento de exceções em Python: o bloco try/except
Gabarito: letra E (ERRADO). A afirmação de que o programa seria encerrado imediatamente sem exibir a mensagem de erro é falsa: quando um ValueError ocorre na conversão dentro do bloco try, o fluxo de execução é desviado para o bloco except ValueError, que exibe a mensagem Erro: Entrada inválida. Digite um número válido. e o programa continua normalmente. O tratamento de exceções em Python existe justamente para evitar o encerramento abrupto do programa diante de erros previsíveis.
O mecanismo de exceções é um dos pilares da programação robusta em Python. Quando uma operação pode falhar — como converter uma string para número com float() —, o programador envolve o código em um bloco try. Se uma exceção do tipo especificado no except for lançada, o interpretador interrompe a execução normal do bloco try e salta para o bloco except correspondente, executando o código de tratamento. Isso impede que o programa "quebre" e permite uma resposta controlada ao erro.
No script apresentado, a estrutura é exatamente essa:
try:
numero_convertido = float(entrada_usuario)
print(f"O dobro do número digitado é: {numero_convertido * 2}")
except ValueError:
print("Erro: Entrada inválida. Digite um número válido.")
Se o usuário digitar, por exemplo, "abc", a função float() lançará um ValueError. O interpretador, então, não encerra o programa: ele procura um except que capture ValueError, encontra o bloco correspondente e executa o print da mensagem de erro. Após isso, o programa continua sua execução normalmente (se houvesse mais código após o bloco try/except, ele seria executado).
A confusão que a banca explora aqui é pensar que qualquer erro em Python derruba o programa. Isso é verdade para exceções não tratadas — se não houvesse o bloco except, o ValueError propagaria até o topo e encerraria a execução com um traceback. Mas a presença do except ValueError muda completamente o comportamento: o erro é capturado e tratado, e o programa segue vivo.
NÃO CAIA NESSA!
A banca inverte o comportamento do tratamento de exceções. Ela quer que você acredite que um ValueError dentro do try encerra o programa — mas é exatamente o oposto: o except existe para capturar esse erro e continuar a execução. O encerramento só ocorreria se o erro não fosse tratado. Lembre-se: try/except é a ferramenta para evitar a queda do programa, não para causá-la.
1try: float() lança ValueError
2Interpretador busca except
3except ValueError captura
4Exibe mensagem de erro
5Programa continua
LEVEL · soulevel.com.br
Alternativa C — ❌ Incorreta
Afirma que o programa seria encerrado imediatamente sem exibir a mensagem de erro. Isso contraria a semântica do try/except: o except ValueError captura a exceção e executa o print da mensagem. O programa não é encerrado — ele trata o erro e continua. A alternativa descreve o comportamento de uma exceção não tratada, que não é o caso do script.
Alternativa E — ✅ Correta ⟵ GABARITO
A afirmação está errada porque o bloco except ValueError foi projetado justamente para interceptar o erro de conversão e exibir a mensagem Erro: Entrada inválida. Digite um número válido.. O programa não é encerrado; o erro é tratado e a execução prossegue. A alternativa correta é a letra E.