Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio resolvido 1 e 2

package desafio.excecao;

import java.util.Scanner;

public class Principal {
    public static void main(String[] args) {
        // Crie um programa simples que solicita dois números ao usuário e realiza a divisão do primeiro pelo segundo. Utilize o bloco try/catch para tratar a exceção que pode ocorrer caso o usuário informe 0 como divisor.
    
        Scanner sc = new Scanner(System.in);

        System.out.println("Vamos dividir dois numeros");
        System.out.println("Digite o primeiro numero: ");
        int num1 = sc.nextInt();
        System.out.println("Digite o segundo numero: ");
        int num2 = sc.nextInt();

       try {
           int divisao = num1 / num2;
           System.out.println("Resultado da divisao: " + divisao);
       } catch (ArithmeticException e) {
           System.out.println("Erro ao dividir dois numeros, Não é possível dividir por zero");
       }
       
       // Crie um programa que lê uma senha do usuário. Utilize o bloco try/catch para capturar a exceção SenhaInvalidaException, uma classe de exceção personalizada que deve ser lançada caso a senha não atenda a critérios específicos (por exemplo, ter pelo menos 8 caracteres).

       System.out.println("Digite sua senha de acesso: ");
       String senha = sc.next();

       try {
           validadorDeSenha(senha);
           System.out.println("Acesso permitido...");
       } catch (SenhaInvalidaException e){
           System.out.println(e.getMessage());
       }

    }

    public static void validadorDeSenha(String senha){
        if (senha.length() < 8){
            throw new SenhaInvalidaException("A senha deve conter ao menos 8 caracteres");
        }
    }
}
2 respostas

Oi, Aldeny! Como vai?

Agradeço por compartilhar.

Você aplicou muito bem o try/catch tanto pra tratar ArithmeticException na divisão quanto para lançar sua própria exceção personalizada com throw. Isso mostra que você entendeu a diferença entre tratar exceções da linguagem e criar regras de negócio com exceções próprias, o que é muito importante no Java.

Uma dica interessante para o futuro é fechar o Scanner utilizando try-with-resources, que ajuda a evitar vazamento de recursos.


try (Scanner sc = new Scanner(System.in)) {
    System.out.println("Digite um numero:");
    int numero = sc.nextInt();
    System.out.println("Numero digitado: " + numero);
}

Nesse código, o Scanner é fechado automaticamente ao final do bloco try, deixando o programa mais seguro e organizado.

Conteúdos relacionados
Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

solução!

Olá Lorena,

Não conhecida o Java try-with-resources, li o artigo compartilhado e achei super interessante, apliquei aos projetos do desafio.
Obrigado mais uma vez por me companhar e sugerir dicas como usar recursos importantes e de forma simplificada.