PERGUNTA 1
1. Foi solicitado a um programador a análise de código a seguir e o seu parecer está listado corretamente na alternativa:
import java.util.Scanner;
public class ExemploRuntimeException {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Entre com um número inteiro: ");
int numero = s.nextInt();
System.out.println("Número lido: " + numero);
}
}
a- O código executa corretamente.
b- A exceção gerada é NullPointerException.
c- A exceção gerada é IndexOutOfBoundException.
d- Ocorrerá uma exceção em tempo de execução.
e- Ocorrerá uma exceção em tempo de compilação.
(ATENÇÃO, o código roda, o gabarito está errado, quem estiver fazendo eu já tentei a (a) e a (b))
Soluções para a tarefa
Resposta: 8/10
PERGUNTA 1
Dois programadores estavam em uma discussão acerca das exceções em Java e algumas afirmações desta discussão são listadas a seguir.
Apenas III e IV estão corretas.
PERGUNTA 2
Em relação às exceções verificadas (checked), é correto afirmar que:
ela precisa ser obrigatoriamente tratada, pois caso contrário o programa não compila corretamente.
PERGUNTA 3
1. Um analista foi convocado para analisar o código a seguir de modo a encontrar erros. É correto afirmar que:
public class TestaException {
public static void testaException() {
String[] stringArray = { "Olá", "pessoal", "Saudações" };
for (int i = 0; i < 4; i++) {
System.out.println(stringArray[i]);
}
}
public static void main(String[] args) {
testaException();
}
}
é gerada uma exceção do tipo ArrayIndexOutOfBoundsException, pois ocorreu acesso a uma posição fora dos limites do array.
PERGUNTA 4 - ERREI ESTA
1. Foi solicitado a um programador a análise de código a seguir e o seu parecer está listado corretamente na alternativa:
import java.util.Scanner;
public class ExemploRuntimeException {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Entre com um número inteiro: ");
int numero = s.nextInt();
System.out.println("Número lido: " + numero);
}
}
A exceção gerada é NullPointerException.
A exceção gerada é IndexOutOfBoundException.----INCORRETA
O código executa corretamente.
Ocorrerá uma exceção em tempo de compilação. --- INCORRETA
Ocorrerá uma exceção em tempo de execução.
PERGUNTA 5
Ao se programar em Java, o uso de exceções permite separar a detecção de um erro e o seu respectivo tratamento. Assinale a alternativa correta:
Uma exceção em Java é um objeto da classe java.lang.Exception ou de uma de suas subclasses.
PERGUNTA 6
Um analista foi solicitado para verificar o código a seguir e emitir uma opinião sobre ele. Assinale a alternativa correta.
public class A {
public void f(int a){
if (a < 10) throw new NumberFormatException();
System.out.println("a = "+ a);
}
}
import java.io.IOException;
public class B{
public void f(int a) throws IOException {
if (a < 10) throw
new IOException ("valor do argumento de f() é " + a + " (menor que 10)");
System.out.println("a = "+ a);
}
}
import java.io.IOException;
public class TestaException{
public static void main(String[] args) throws IOException{
B x = new B();
int a = 4;
x.f(a);
System.out.println("fim do metodo main em TestaException");
}
}
Considerando a classe TestaException, a exceção que pode ser lançada por f() é verificada (IOException), e o método main() tem a cláusula "throws IOException", o que faz a compilação ocorrer corretamente.
PERGUNTA 7
Uma exceção é uma indicação de algum problema na execução de um programa de computador. Analise as afirmações a seguir e escolha a alternativa correta.
Apenas II está correta.
PERGUNTA 8
Considere o código Java a seguir:
import java.util.Scanner;
public class ExemploRuntimeException {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Entre com um número inteiro: ");
int numero = s.nextInt();
System.out.println("Número lido: " + numero);
}
}
Em que posição do código devemos tratar a exceção com o bloco try/catch?
Usar o try antes de Scanner s = new Scanner(System.in); e o catch depois de System.out.println("Número lido: " + numero)
PERGUNTA 9 - ERREI ESTA
1. Considere o código a seguir que apresentará erro se for executado sem o tratamento de exceções. Analise o código e identifique quantas exceções podem ser geradas.
import java.io.IOException;
public class TesteException {
public static void main(String[] args) {
int[] numeros = {4, 8, 16, 32, 64, 128};
int[] denominador = {2, 0, 4, 8, 0};
for (int i = 0; i < numeros.length; i++) {
System.out.println(numeros[i] + "/" + denominador[i] + " = " + (numeros[i]/denominador[i]));
}
}
}
Não existirão exceções.
O número de exceções geradas será 4.
O número de exceções geradas será 3.
O número de exceções geradas será 1.----INCORRETA
O número de exceções geradas será 2. ----INCORRETA
PERGUNTA 10
Considere o código a seguir que apresentará erro se for executado sem o tratamento de exceções. Assinale a alternativa correta que lista quais são os tipos de exceções geradas ao executar o código.
import java.io.IOException;
public class TesteException {
public static void main(String[] args) {
int[] numeros = {4, 8, 16, 32, 64, 128};
int[] denominador = {2, 0, 4, 8, 0};
for (int i = 0; i < numeros.length; i++) {
System.out.println(numeros[i] + "/" + denominador[i] + " = " + (numeros[i]/denominador[i]));
}
}
}
ArithmeticException e ArrayIndexOutOfBoundsException.
Explicação:
8/10
O número de exceções geradas será 3. (É A CORRETA)
Resposta:
Resposta correta: A terceira linha do código deveria ser → System.out.println("Olá Mundo!")
Explicação: