Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O que poderia melhorar no código.


import java.util.Scanner;

public class TarefaTryCatch {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Qual o número que deja dividir");
        int numero1 = scanner.nextInt();

        System.out.println("Informe o segundo numero da divisão");
        int numero2 = scanner.nextInt();
        
        try {
            int resultado = numero1 / numero2;
            System.out.println("Resultado da divisão é: " + resultado);
        } catch (ArithmeticException e){
            System.out.println("Erro encontrado é : Dividir por zero não é permitido ");
        }
    }
}
1 resposta
solução!

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:

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

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