1-)
public class DivisorIgualZeroException extends RuntimeException {
public DivisorIgualZeroException(String message) {
super(message);
}
}
public class SimuladorDeCalculo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("Informe o numerador: \n");
int numerador = scanner.nextInt();
System.out.println("Informe o divisor: ");
int denominador = scanner.nextInt();
double resultado = calculador(numerador, denominador);
System.out.println(resultado);
}catch (DivisorIgualZeroException e){
System.out.println("Erro ao informar o numerador");
System.out.println(e.getMessage());
}
}
public static double calculador(int numerador, int divisor) throws DivisorIgualZeroException{
if (divisor == 0){
throw new DivisorIgualZeroException("O divisor não pode ser 0, por favor informe um número válido");
} else return (double) numerador / divisor;
}
}
2-)
public class SenhaInvalidaException extends RuntimeException{
public SenhaInvalidaException(String message) {
super(message);
}
}
public class CriaPerfil {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try{
System.out.print("Informe o nome de usuário: \n");
String username = scanner.nextLine();
System.out.println("Informe uma nova senha: ");
String password = scanner.nextLine();
verificaSenha(password);
System.out.println("Usuário cadastrado com sucesso.");
} catch (DivisorIgualZeroException e){
System.out.println("Senha Inválida");
System.out.println(e.getMessage());
} finally {
System.out.println("Operação encerrada");
}
}
public static boolean verificaSenha(String password) throws SenhaInvalidaException{
if (password.length() < 8){
throw new SenhaInvalidaException("A senha contém menos de 8 digitos, por favor tente novamente.");
} else return true;
}
}
3-)
public class UserNotFoundException extends RuntimeException{
public UserNotFoundException(String message) {
super(message);
}
}
public class User {
private String username, id;
public User(GitHubUser user) {
this.username = user.login();
this.id = String.valueOf(user.id());
}
@Override
public String toString() {
return "Nome: " + username +
", id= " + id;
}
public static record GitHubUser(String login, int id){
}
}
public class ProcuraUsers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String accessToken = "****************************************";
try {
String address = consulta(scanner, accessToken);
String json = buildHttpRequest(address,accessToken);
Gson gson = new GsonBuilder().create();
User.GitHubUser gitHubUser = gson.fromJson(json, User.GitHubUser.class);
User user = new User(gitHubUser);
System.out.println(user);
} catch (UserNotFoundException e) {
System.out.println("Hmmm. Parece que este usuário não existe...");
System.out.println(e.getMessage());
} catch (IOException | InterruptedException e) {
throw new RuntimeException(e);
}
}
public static String consulta(Scanner scanner, String token){
System.out.println("Informe o nome de usuário que você deseja encontrar: ");
String username = scanner.nextLine();
return "https://api.github.com/users/" + username;
}
public static String buildHttpRequest(String address, String token) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(address))
.header("Accept", "application/vnd.github.v3+json")
.build();
HttpResponse <String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if(response.statusCode() == 404){
throw new UserNotFoundException("O usuário procurado não existe. Tente novamente");
} else return response.body();
}
}