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?