0
respostas

Resolução

Compartilhando código.

package desafios.desafio03;

public class Divisor {

    public void divide(int dividendo, int divisor) {
        try {
            int divisao = dividendo / divisor;
            System.out.println(dividendo + " ÷ " + divisor + " = " + divisao);
        } catch (ArithmeticException erro) {
            System.out.println("Erro de Aritmética! Não dá para o divisor ser 0.");
            System.out.println("Erro: " + erro.getMessage());
        }
    }

}
package desafios.desafio03;

public class Usuario {

    public void logar(String senha) {
       try {
            if (senha.length() < 8) {
                throw new SenhaInvalidaException("A senha deve ter pelo menos 8 caracteres.");
            }
       } catch (SenhaInvalidaException erro) {
           System.out.println("Erro: " + erro.getMessage());
       }
    }
}
package desafios.desafio03;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;

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 GitHubApi {

    public void pesquisaUsuario() throws IOException, InterruptedException {
        Scanner leitura = new Scanner(System.in);
        try {
            System.out.print("Digite o usuário que deseja realizar a pesquisa: ");
            var octocat = leitura.nextLine();

            String url = "https://api.github.com/users/" + octocat;

            HttpClient cliente = HttpClient.newHttpClient();
            HttpRequest requisicao = HttpRequest.newBuilder()
                    .uri(URI.create(url))
                    .build();
            HttpResponse<String> resposta = cliente.send(requisicao, HttpResponse.BodyHandlers.ofString());

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

            Gson gson = new GsonBuilder()
                    .setPrettyPrinting()
                    .create();
            JsonElement elementoJson = JsonParser.parseString(resposta.body());
            String jsonFormatado = gson.toJson(elementoJson);
            System.out.println(jsonFormatado);

        } catch (IllegalArgumentException | ErroConsultaGitHubException erro) {
            System.out.println("Erro: " + erro.getMessage());
        } finally {
            leitura.close();
        }
    }
}
package desafios.desafio03;

public class SenhaInvalidaException extends RuntimeException {

    private String mensagem;

    public SenhaInvalidaException(String mensagem) {
        this.mensagem = mensagem;
    }

    @Override
    public String getMessage() {
        return mensagem;
    }
}
package desafios.desafio03;

public class ErroConsultaGitHubException extends RuntimeException {

    private String mensagem;

    public ErroConsultaGitHubException(String mensagem) {
        this.mensagem = mensagem;
    }

    @Override
    public String getMessage() {
        return mensagem;
    }
}
/**
 * 1. 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.
 * 2. 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).
 * 3. Desenvolva um programa em Java que permite aos usuários consultar informações sobre um usuário do GitHub
 *    (utilize a API pública do GitHub para obter os dados). Crie uma classe de exceção personalizada,
 *    ErroConsultaGitHubException, que estende RuntimeException. Lance essa exceção quando o nome de usuário não for
 *    encontrado. No bloco catch, trate de forma específica essa exceção, exibindo uma mensagem amigável.
 */

package desafios.desafio03;

import java.io.IOException;

public class Principal {
    public static void main(String[] args) throws IOException, InterruptedException {
        System.out.println("Desafio 1");
        Divisor divisor = new Divisor();
        divisor.divide(4, 0);
        System.out.println("--------------------------");
        System.out.println("Desafio 2");
        Usuario usuario = new Usuario();
        usuario.logar("cama");
        System.out.println("--------------------------");
        System.out.println("Desafio 3");
        GitHubApi gitHubApi = new GitHubApi();
        gitHubApi.pesquisaUsuario();
    }
}

Beleza?