Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2023
Programação›Linguagens de programação
Código
ce163369
Banca
CESPE / CEBRASPE
Órgão
TBG
Ano
2023
Nível
Superior
Cargo
Ênfase: Desenvolvimento de Software
Com base no código precedente, escrito em Java, julgue o próximo item.Se a entrada realizada pelo usuário nas variáveis numero1 ou numero2 não for um valor inteiro, então, de acordo com a sintaxe e a lógica do programa para tratar a exceção de erro, será mostrada a mensagem ERRO - Valor digitado não é um número inteiro!.
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 Java
Gabarito: letra E (ERRADO). A afirmação está incorreta porque o código apresentado contém um erro de sintaxe na construção do tratamento de exceção: a forma correta é try-catch, e não try.throw como aparece no código. Portanto, se a entrada não for um valor inteiro, o programa não exibirá a mensagem "ERRO - Valor digitado não é um número inteiro!", pois a estrutura de tratamento de exceção está malformada e não compilará.
O tratamento de exceções em Java é um mecanismo que permite ao programador lidar com erros em tempo de execução de forma controlada, evitando que o programa termine abruptamente. A sintaxe básica envolve o bloco try, que contém o código que pode lançar uma exceção, seguido de um ou mais blocos catch, que capturam e tratam a exceção específica. A palavra-chave throw é usada para lançar uma exceção explicitamente, enquanto throws é usada na assinatura do método para declarar que ele pode lançar uma exceção. A construção try.throw não existe na linguagem Java; o correto é try { ... } catch (Exception e) { ... }.
No código da questão, a intenção é capturar uma exceção quando o usuário digita um valor não inteiro nas variáveis numero1 ou numero2. Para isso, o programador deveria usar um bloco try-catch envolvendo a leitura e conversão dos valores, capturando, por exemplo, uma NumberFormatException ou InputMismatchException. No entanto, a sintaxe apresentada (try.throw) é inválida, o que impede a compilação do programa. Consequentemente, a mensagem de erro específica não será exibida, tornando a afirmação incorreta.
A banca explora a confusão entre os elementos da estrutura de tratamento de exceções: try, catch, finally, throw e throws. É comum que candidatos confundam throw (usado para lançar uma exceção) com catch (usado para capturá-la) ou com a própria estrutura try-catch. Nesta questão, a pegadinha está em apresentar try.throw como se fosse uma construção válida, quando na verdade o correto é try-catch. O candidato que não conhece a sintaxe exata pode ser induzido a acreditar que a afirmação está correta, pois a lógica de tratar a exceção parece plausível, mas a sintaxe inválida torna o programa não compilável.
Para resolver questões como esta, é fundamental conhecer a sintaxe correta das estruturas de tratamento de exceção em Java. O bloco try deve ser seguido por um ou mais blocos catch (ou por um bloco finally), e a palavra-chave throw é usada apenas para lançar uma exceção manualmente. A ausência de um catch após o try (ou o uso de uma sintaxe incorreta como try.throw) é um erro de compilação. Portanto, a mensagem de erro descrita no enunciado não será exibida, pois o programa nem sequer será executado.
1try
2catch
3finally
4throw (lança)
5throws (declara)
LEVEL · soulevel.com.br
Alternativa C — ❌ Incorreta
A alternativa C afirma que a mensagem "ERRO - Valor digitado não é um número inteiro!" será mostrada. Isso está incorreto porque o código contém um erro de sintaxe na construção do tratamento de exceção. O correto seria try-catch, mas o código apresenta try.throw, que é inválido. Como o programa não compila, a mensagem de erro não será exibida. A banca explora a confusão entre throw (usado para lançar exceção) e catch (usado para capturar), induzindo o candidato a acreditar que a lógica está correta, mas a sintaxe inválida impede a execução.
Alternativa E — ✅ Correta ⟵ GABARITO
A alternativa E está correta ao afirmar que a mensagem não será mostrada. O motivo é o erro de sintaxe na construção do tratamento de exceção: try.throw não é uma estrutura válida em Java. A forma correta é try { ... } catch (Exception e) { ... }. Como o código não compila, a mensagem de erro não será exibida, tornando a afirmação do enunciado incorreta. A banca cobra o conhecimento da sintaxe correta das estruturas de tratamento de exceção, e a pegadinha está em apresentar uma construção inválida como se fosse válida.