Buena tarde,
Comparto código de los ejercicios, espero pueda ayudar un poco.
- 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.
- 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).
- 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.
MAIN
import br.com.ejerciciosjava.excepciones.ErroConsultaGitHubException;
import br.com.ejerciciosjava.excepciones.SenhaInvalidaException;
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.InputMismatchException;
import java.util.Scanner;
import static br.com.ejerciciosjava.ContrasenaUsuario.validarContrasena;
public class Main {
public static void main(String[] args) throws SenhaInvalidaException, IOException, InterruptedException {
Scanner scanner = new Scanner(System.in);
System.out.println("***************************************** \nEjercicio 1 \n*****************************************");
System.out.println("División de dos números");
try {
System.out.println("Ingresa el primer dato: ");
int dato1 = scanner.nextInt();
System.out.println("Ingresa el segundo dato: ");
int dato2 = scanner.nextInt();
int opDiv = dato1 / dato2;
System.out.println("***************************************** \nEl resultado de la división es: \n" + opDiv + "\n*****************************************");
} catch (ArithmeticException e) {
System.out.println("Hubo un error, la división de 0 no está permitida");
} catch (InputMismatchException e) {
System.out.println("Hubo un error, La división no considera los decimales");
} catch (Exception e) {
System.out.println("Hubo un error: " + e);
}
System.out.println("***************************************** \nEjercicio 2 \n*****************************************");
System.out.println("Verificación de contraseña");
System.out.println("Ingrese nombre de usuario: ");
String usuario = scanner.next();
System.out.println("Ingrese contraseña " + usuario);
String contrasena = scanner.next();
try {
validarContrasena(contrasena);
System.out.println("Contraseña válida");
} catch (SenhaInvalidaException e) {
System.out.println("Error: " + e.getMessage());
}
System.out.println("***************************************** \nEjercicio 3 \n*****************************************");
System.out.println("Ingresa el usuario que buscas: ");
String buscaUsuario = scanner.next();
String direccion = "https://api.github.com/users/" + buscaUsuario;
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(direccion)).build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 404) {
throw new ErroConsultaGitHubException("Usuario no encontrado");
}
String json = response.body();
System.out.println(json);
} catch (ErroConsultaGitHubException e) {
System.out.println("Hubo un error al realizar la búsqueda");
} catch (Exception e) {
System.out.println("Hubo un error");
}
}
}
public class ErroConsultaGitHubException extends Throwable {
public ErroConsultaGitHubException(String usuarioNoEncontrado) {
}
}
public class SenhaInvalidaException extends Throwable {
public SenhaInvalidaException(String s) {
}
}