Abaixo minhas resoluções de exercício
1 -
package CursoAPI.Exercicios.Aula3.Exercicio1;
import java.util.Scanner;
public class MainAPI3 {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
System.out.println("Digite o primeiro número: ");
int num1 = leitura.nextInt();
System.out.println("Digite o segundo número: ");
int num2 = leitura.nextInt();
leitura.close();
try {
System.out.println("Resultado: " + num1 / num2);
} catch (ArithmeticException e) {
System.out.println("Erro: " + e.getMessage());
}
}
}
2 - CustomException
package CursoAPI.Exercicios.Aula3.Exercicio2;
public class SenhaInvalidaException extends RuntimeException {
private String mensagem;
public SenhaInvalidaException(String mensagem) {
this.mensagem = mensagem;
}
@Override
public String getMessage() {
return this.mensagem;
}
}
2 - Main
package CursoAPI.Exercicios.Aula3.Exercicio2;
import java.util.Scanner;
public class MainAPI3_2 {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
System.out.println("Digite a senha: ");
String senha = leitura.nextLine();
leitura.close();
try {
// Decidi deixar a condicional aqui ao invés de criar uma nova classe com construtor
if (senha.length() < 8) {
throw new SenhaInvalidaException("A senha deve ter pelo menos 8 caracteres.");
}
System.out.println("Senha válida.");
} catch (SenhaInvalidaException e) {
System.out.println("Erro: " + e.getMessage());
}
}
}
3 - CustomException
package CursoAPI.Exercicios.Aula3.Exercicio3;
public class ErroConsultaGitHubException extends RuntimeException {
private String mensagem;
public ErroConsultaGitHubException(String mensagem) {
this.mensagem = mensagem;
}
@Override
public String getMessage() {
return this.mensagem;
}
}
3 - UsuarioGithub
package CursoAPI.Exercicios.Aula3.Exercicio3;
public class UsuarioGitHub {
private String login;
private String url;
public UsuarioGitHub(String login, String url) {
this.login = login;
this.url = url;
}
public String getLogin() {
return login;
}
public String getUrl() {
return url;
}
@Override
public String toString() {
return "Usuário do GitHub: " + login + "\nURL: " + url;
}
}
3 - Main
package CursoAPI.Exercicios.Aula3.Exercicio3;
import com.google.gson.Gson;
import java.io.IOException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;
public class MainAPI3_3 {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner leitura = new Scanner(System.in);
System.out.println("Digite o nome do usuário do GitHub que deseja buscar: "); // gabrielSMarcal
var busca = leitura.nextLine();
String endereco = "https://api.github.com/users/" + busca;
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(java.net.URI.create(endereco))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 404) {
throw new ErroConsultaGitHubException("Usuário não encontrado");
}
String json = response.body();
System.out.println(json);
Gson gson = new Gson();
UsuarioGitHub usuarioGitHub = gson.fromJson(json, UsuarioGitHub.class);
System.out.println(usuarioGitHub);
} catch (IOException | InterruptedException e) {
System.out.println("Erro ao consultar a API do GitHub");
System.out.println(e.getMessage());
} catch (ErroConsultaGitHubException e) {
System.out.println(e.getMessage());
} finally {
System.out.println("Programa executado com sucesso");
}
}
}