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