Segue a resolução dos exercícios.
Classe Senha:
public class Senha {
private String senha;
public Senha(String senha) {
if (senha.length() < 8){
throw new TamanhoDeSenhaException("Senha deve ter no mínimo 8 caracteres");
} else {
this.senha = senha;
System.out.println("Senha atualizado com sucesso!");
}
}
}
Classe TamanhoDeSenhaException:
public class TamanhoDeSenhaException extends RuntimeException {
private String message;
public TamanhoDeSenhaException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
}
Classe ErroConsultaGitHubException:
public class ErroConsultaGitHubException extends RuntimeException {
private String message;
public ErroConsultaGitHubException(String message) {
this.message = message;
}
@Override
public String getMessage() {
return message;
}
}
Classe ConsultaAPIGitHub:
//imports
public class ConsultaAPIGitHub {
public String consultaAPI(String url) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url)).build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 404) {
throw new ErroConsultaGitHubException("Exceção lançada -> Usuário não encontrado!");
}
return response.body();
}
}
Classe DesafioHoraDaPraticaException:
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;
public class DesafioHoraDaPraticaException {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("\nExercício 1: ");
int numero1;
int numero2;
System.out.println("Digite dois números inteiros:");
System.out.println("Primeiro:");
numero1 = input.nextInt();
input.nextLine();
System.out.println("Segundo:");
numero2 = input.nextInt();
input.nextLine();
double divisao;
try {
divisao = numero1 / numero2;
} catch (ArithmeticException e) {
System.out.println("Ainda não conseguimos resolver " +
"matematicamente essa " + e.getMessage());
}
System.out.println("Exercício 2: ");
System.out.println("Digite sua senha de 8 caracteres:");
try {
String psw = input.nextLine();
Senha senha1 = new Senha(psw);
} catch (TamanhoDeSenhaException e){
System.out.println(e.getMessage());
}
System.out.println("Exercício 3: ");
System.out.println("Digite o nome de um usuário do GitHub para stalkear: ");
String nome = input.nextLine();
try {
String nomeCodificado = URLEncoder.encode(nome, StandardCharsets.UTF_8);
String url = "https://api.github.com/users/" + nomeCodificado;
ConsultaAPIGitHub consulta = new ConsultaAPIGitHub();
System.out.println(consulta.consultaAPI(url));
} catch (ErroConsultaGitHubException | IOException | InterruptedException e) {
System.out.println(e.getMessage());
}
input.close();
}
}
Output:
Exercício 1:
Digite dois números inteiros:
Primeiro:
1
Segundo:
0
Ainda não conseguimos resolver matematicamente essa / by zero
Exercício 2:
Digite sua senha de 8 caracteres:
1234567
Exceção lançada -> Senha deve ter no mínimo 8 caracteres
Exercício 3:
Digite o nome de um usuário do GitHub para stalkear:
RaoniDosReis
{"login":"RaoniDosReis","id":54869712,...}
Digite o nome de um usuário do GitHub para stalkear:
villeladev
{"login":"villeladev","id":239257694,...}
Digite o nome de um usuário do GitHub para stalkear:
fiedlerraf
Exceção lançada -> Usuário não encontrado!
Process finished with exit code 0