Questão nº 31
Questão de Tecnologia da Informação · FCC TRT17 2022 (nº 31)
Considere o programa em Java abaixo, que será executado em condições ideais.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
try {
Main obj = new Main();
System.out.print("Digite o valor do dividendo: ");
double dividendo = s.nextDouble();
System.out.print("Digite o valor do divisor: ");
double divisor = s.nextDouble();
double resultado = obj.faz_Divisao(dividendo, divisor);
System.out.println("O resultado da divisao é: " + resultado);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
I
{
if(divisor == 0) {
throw new Exception("Não é permitido fazer uma divisão por zero!");
}
return dividendo / divisor;
}
}
Para que o programa, ao ser executado, funcione corretamente de acordo com a lógica prevista, a lacuna I deve ser corretamente preenchida por:
- A`public double faz_Divisao(double dividendo, double divisor)`
- B`public double faz_Divisao(double divisor, double dividendo) Exception ex`
- C`public double faz_Divisao(double d1, double d2) throws Exception`
- D`public double faz_Divisao(double divisor, double dividendo) Exception throws`
- E`public double faz_Divisao(double dividendo, double divisor) throws Exception` (alternativa correta)
Resposta comentada
Gabarito Alternativa E
A assinatura de um método em Java define seu contrato: como ele pode ser chamado, o que ele retorna e, se for o caso, quais exceções verificadas ele pode lançar. Quando um método pode lançar uma exceção verificada (como Exception), ele deve declará-la usando a palavra-chave throws em sua assinatura.
- (A) Incorreta: A assinatura está correta em termos de modificador de acesso, tipo de retorno, nome e parâmetros, mas não declara que o método pode lançar uma
Exception(exceção verificada), o que é obrigatório em Java para o código fornecido. - (B) Incorreta: A ordem dos parâmetros está invertida em relação ao uso no método
main, e a sintaxeException expara declarar uma exceção é incorreta; faltaria a palavra-chavethrows. - (C) Incorreta: Embora declare corretamente que lança uma
Exception, os nomes dos parâmetros (d1,d2) não correspondem aos nomes (dividendo,divisor) utilizados no corpo do método fornecido, o que causaria um erro de compilação no corpo do método. - (D) Incorreta: A ordem dos parâmetros está invertida, e a sintaxe
Exception throwspara declarar uma exceção é incorreta; a palavra-chavethrowsvem antes do tipo da exceção. - (E) Correta: Esta alternativa apresenta a assinatura completa e correta. Ela define o método como
public, que retorna umdouble, com o nomefaz_Divisao, recebendo dois parâmetrosdoublechamadosdividendoedivisor(correspondendo ao uso no corpo do método e na chamada), e declara corretamente que o métodothrows Exception, cumprindo a regra de exceções verificadas em Java.
Fonte: FCC TRT17 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.