1
resposta

Desafio - Respostas

//Divisão

import java.util.Scanner;

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

        try {
            System.out.print("Informe o primeiro número: ");
            double numero1 = scanner.nextDouble();

            System.out.print("Informe o segundo número: ");
            double numero2 = scanner.nextDouble();

            double resultado = numero1 / numero2;
            System.out.println("Resultado: " + resultado);

        } catch (ArithmeticException e) {
            System.out.println("Erro: Não é possivel divir por zero.");
        //err - usado na linha de exception
        } catch (Exception e) {
            System.err.println("Erro: Entrada inválida.");
        } finally {
            scanner.close();
        }
    }
}

//Senha

import java.util.Scanner;

public class Senha {
    public static void validarSenha(String senha) throws SenhaInvalidaException {
        if (senha == null || senha.length() < 8) {
            throw new SenhaInvalidaException("A senha deve ter pelo menos 8 caracteres.");
        }
        // Adicionar mais critérios de validação se necessário
        System.out.println("Senha válida!");
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int tentativas = 0;
        final int MAX_TENTATIVAS = 5;
        boolean senhaValida = false;
        while (tentativas < MAX_TENTATIVAS && !senhaValida) {
            System.out.println("Digite sua senha:");
            String senha = scanner.nextLine();

            try {
                validarSenha(senha);
                System.out.println("Senha válida. Acesso permitido.");
                senhaValida = true;
            } catch (SenhaInvalidaException e) {
                tentativas++;
                System.out.println("Erro: " + e.getMessage());
                if (tentativas < MAX_TENTATIVAS) {
                    System.out.println("Você tem mais " + (MAX_TENTATIVAS - tentativas) + " tentativa(s). Tente novamente.");
                } else {
                    System.out.println("Número máximo de tentativas atingido. Acesso negado.");
                }
            }
        }
        scanner.close();
        }
    }
class SenhaInvalidaException extends Exception {
    public SenhaInvalidaException(String message) {
        super(message);
    }
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;

public class ConsultaGitHub {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        System.out.println("Digite o nome de usuário do GitHub para consultar informações: ");
        String username = leitura.nextLine();

        String endereco = "https://api.github.com/users/" + username;

        try {
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(endereco))
                    .header("Accept", "application/vnd.github.v3+json")
                    .build();

            HttpResponse<String> response = client
                    .send(request, HttpResponse.BodyHandlers.ofString());

            if (response.statusCode() == 404) {
                throw new ErroConsultaGitHubException("Usuário não encontrado no GitHub.");
            }

            String json = response.body();
            System.out.println(json);

            // Adicione aqui o código para processar o JSON e exibir as informações desejadas
        } catch (IOException | InterruptedException e) {
            System.out.println("Opss… Houve um erro durante a consulta à API do GitHub.");
            e.printStackTrace();
        } catch (ErroConsultaGitHubException e) {
            System.out.println(e.getMessage());
        }
    }
}
class ErroConsultaGitHubException extends RuntimeException {

    public ErroConsultaGitHubException(String mensagem) {
        super(mensagem);
    }
}
1 resposta

Boa Tarde, Henrique! Tudo bem?

Obrigado por compartilhar seu código e contribuir com a nossa comunidade do Fórum da Alura. No código da divisão, apenas um pequeno ajuste no catch para ArithmeticException, pois a divisão por zero com double não lança essa exceção. Em vez disso, você pode verificar se o divisor é zero antes de realizar a divisão:

import java.util.Scanner;

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

        try {
            System.out.print("Informe o primeiro número: ");
            double numero1 = scanner.nextDouble();

            System.out.print("Informe o segundo número: ");
            double numero2 = scanner.nextDouble();

            if (numero2 == 0) {
                throw new ArithmeticException("Não é possível dividir por zero.");
            }

            double resultado = numero1 / numero2;
            System.out.println("Resultado: " + resultado);

        } catch (ArithmeticException e) {
            System.out.println("Erro: " + e.getMessage());
        } catch (Exception e) {
            System.err.println("Erro: Entrada inválida.");
        } finally {
            scanner.close();
        }
    }
}

Caso queira se aprofundar no assunto de erros ocasionados por divisão por zero em java, indico a leitura deste artigo. Nota: O material recomendado está em inglês. Utilize o tradutor caso necessário.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado