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.
Essa foi minha resolução:
public class ErroConsultaGitHubException extends RuntimeException {
public ErroConsultaGitHubException(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 Principal {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Digite o username do usuario: ");
String username = input.nextLine();
String endereco = "https://api.github.com/users/" + username;
try{
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(endereco))
.build();
HttpResponse<String> response = client
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 404) {
throw new ErroConsultaGitHubException("Usuario " + username + " não foi encontrado!");
}
System.out.println(response.body());
}catch (IOException | InterruptedException e){
System.out.println("Houve um problema de conexão com a API: \n" + e.getMessage());
} catch (ErroConsultaGitHubException e){
System.out.println(e.getMessage());
}
}
}