Logo Passei Direto
Buscar
Pergunta 10 (1 ponto) Salvo GE-POO-UN-04-QME-10 As exceções, em Java, são utilizadas para indicar que ocorreu algo inesperado durante a execução do programa. Um exemplo típico desse cenário acontece, por exemplo, quando tentamos chamar um método usando uma variável do tipo classe que guarda null, ao invés da referência a um objeto. Nesse caso, como não existe um objeto, é levantada uma exceção do tipo "NullPointerException". Podemos, então, adicionar no nosso código um bloco "try-catch" para tratar exceções, caso essas sejam levantadas durante a execução do programa. O código abaixo mostra essa ideia. Tendo como referência esse código, assinale a alternativa INCORRETA: Opções da pergunta 10: Esse código, quando executado, imprime na tela os elementos do vetor. Nenhuma exceção é levantada. Esse código, quando executado, levanta uma exceção e imprime na tela a mensagem "Foi levantada uma exceção". A classe "Exception" tem como subclasse "RuntimeException", que corresponde às exceções não verificadas, como "NullPointerException". Outras subclasses de "Exception", diferentes de "RuntimeException", correspondem a exceções verificadas. As exceções verificadas necessariamente devem ser tratadas, ou seja, o código capaz de levantar esse tipo de exceção deve ser cercado por um bloco "try-catch". As exceções não verificadas, por sua vez, não precisam necessariamente serem tratadas por um bloco "try-catch". Nesse exemplo, os comandos que aparecem entre as linhas 4 e 7 estão dentro de um "try". Assim, se uma exceção do tipo "Exception" for levantada o comando que aparece dentro do "catch" será executado. Se trocarmos a condição do loop para "i < vetor.length", quando o programa for executado nenhuma exceção será levantada.
User badge image
Joe Alves de Andrade

há 2 meses

Respostas

User badge image

Ed Verified user icon

há 2 meses

Vamos analisar as alternativas passo a passo para identificar a INCORRETA: 1. "Esse código, quando executado, imprime na tela os elementos do vetor. Nenhuma exceção é levantada." - Se o loop estiver correto (i < vetor.length) e o vetor não for nulo, não haverá exceção. Essa afirmação é correta. 2. "Esse código, quando executado, levanta uma exceção e imprime na tela a mensagem 'Foi levantada uma exceção'." - Se o loop ultrapassar o tamanho do vetor (por exemplo, i <= vetor.length), uma exceção ArrayIndexOutOfBoundsException será lançada e o catch será executado. Correto. 3. "A classe 'Exception' tem como subclasse 'RuntimeException', que corresponde às exceções não verificadas, como 'NullPointerException'." - Na hierarquia Java, RuntimeException é uma subclasse de Exception e representa exceções não verificadas. Correto. 4. "Outras subclasses de 'Exception', diferentes de 'RuntimeException', correspondem a exceções verificadas." - Exceções verificadas são aquelas que não são RuntimeException nem suas subclasses. Correto. 5. "As exceções verificadas necessariamente devem ser tratadas, ou seja, o código capaz de levantar esse tipo de exceção deve ser cercado por um bloco 'try-catch'." - Exceções verificadas devem ser tratadas ou declaradas com throws. Correto. 6. "As exceções não verificadas, por sua vez, não precisam necessariamente serem tratadas por um bloco 'try-catch'." - Exceções não verificadas (RuntimeException e subclasses) não precisam ser obrigatoriamente tratadas. Correto. 7. "Nesse exemplo, os comandos que aparecem entre as linhas 4 e 7 estão dentro de um 'try'. Assim, se uma exceção do tipo 'Exception' for levantada o comando que aparece dentro do 'catch' será executado." - O catch captura exceções do tipo Exception e suas subclasses, então o bloco será executado se uma exceção ocorrer. Correto. 8. "Se trocarmos a condição do loop para 'i < vetor.length', quando o programa for executado nenhuma exceção será levantada." - Essa condição evita o acesso fora dos limites do vetor, então nenhuma exceção será lançada. Correto. --- Conclusão: A alternativa INCORRETA é a terceira: "A classe 'Exception' tem como subclasse 'RuntimeException', que corresponde às exceções não verificadas, como 'NullPointerException'." Porque, na verdade, RuntimeException é uma subclasse de Exception, não o contrário. A frase diz que Exception tem como subclasse RuntimeException, o que está correto, mas a forma como está escrita pode causar confusão. Se a alternativa estiver afirmando que Exception é subclasse de RuntimeException, aí sim estaria incorreta. Se a alternativa está exatamente como você escreveu, ela está correta. Se todas as alternativas parecem corretas, a INCORRETA pode ser a primeira: "Esse código, quando executado, imprime na tela os elementos do vetor. Nenhuma exceção é levantada." Se o código original tem um erro no loop (por exemplo, i <= vetor.length), essa afirmação é falsa. --- Resposta direta: A alternativa INCORRETA é: "Esse código, quando executado, imprime na tela os elementos do vetor. Nenhuma exceção é levantada." Porque, se o loop ultrapassa o tamanho do vetor, uma exceção será levantada.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina