Seu código parece estar funcionando corretamente para o propósito que você descreveu, que é realizar uma divisão e lidar com a exceção ArithmeticException
no caso de uma divisão por zero. No entanto, aqui estão algumas sugestões de melhorias e boas práticas que você pode considerar:
Validação do divisor: Antes de executar a divisão, você pode verificar se o divisor é zero para evitar a exceção. Isso pode ser feito com um bloco if
antes do bloco try
.
Gerenciamento de recursos com try-with-resources: O uso do Scanner
pode resultar em vazamentos de recursos se não for fechado corretamente. Você pode usar o try-with-resources para garantir que o Scanner
seja fechado automaticamente após o uso.
Aqui está uma versão modificada do seu código incorporando essas sugestões:
import java.util.Scanner;
public class TarefaTryCatch {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
System.out.println("Qual o número que desea dividir:");
int numero1 = scanner.nextInt();
System.out.println("Informe o segundo número da divisão:");
int numero2 = scanner.nextInt();
if (numero2 != 0) {
int resultado = numero1 / numero2;
System.out.println("Resultado da divisão é: " + resultado);
} else {
System.out.println("Erro encontrado: Dividir por zero não é permitido.");
}
} catch (java.util.InputMismatchException e) {
System.out.println("Erro encontrado: Informe um número válido.");
} catch (Exception e) {
System.out.println("Erro desconhecido: " + e.getMessage());
}
}
}
Esta versão inclui uma validação adicional para garantir que os números inseridos sejam válidos (números inteiros) e adiciona um bloco catch
para lidar com exceções não específicas, caso ocorra algum erro desconhecido. Além disso, a mensagem de erro para a divisão por zero foi ligeiramente ajustada para fornecer uma resposta mais genérica.