Muchos dispositivos creando código de programación.

Ejercicios para practicar excepciones personalizadas en Java

Aquí tienes ejercicios para practicar la creación de jerarquías de clases. Cada ejercicio implica la creación de una clase que maneje excepciones personalizadas para validar atributos o reglas internas. Están organizados de menor a mayor dificultad.


1. Nivel básico

  1. CuentaBancaria
    • Crea una clase CuentaBancaria con atributos titular y saldo.
    • Implementa un método retirar(double cantidad).
    • Lanza una excepción personalizada SaldoInsuficienteException si el saldo es insuficiente.
    • Prueba la clase intentando retirar más dinero del disponible.
  2. Cuenta de Ahorro
    • Crea una clase CuentaAhorro con atributos titular y saldo.
    • Implementa un método depositar(double cantidad).
    • Lanza una excepción CantidadNegativaException si se intenta depositar una cantidad menor o igual a 0.
    • Prueba la clase intentando depositar valores negativos.
  3. Producto
    • Crea una clase Producto con atributos nombre y precio.
    • Lanza una excepción PrecioInvalidoException si el precio es menor o igual a cero.
    • Prueba la clase creando productos con precios inválidos.
  4. Persona
    • Crea una clase Persona con atributos nombre y edad.
    • Lanza una excepción EdadInvalidaException si la edad es negativa o superior a 150 años.
    • Prueba la clase creando personas con edades inválidas.
  5. Temperatura
    • Crea una clase Temperatura con un atributo gradosCelsius.
    • Lanza una excepción TemperaturaExtremaException si la temperatura está fuera del rango -100 a 100 grados.
    • Prueba la clase con valores extremos.
  6. Estudiante
    • Crea una clase Estudiante con atributos nombre y notaFinal.
    • Lanza una excepción NotaInvalidaException si la nota no está entre 0 y 10.
    • Prueba la clase con notas fuera del rango.

2. Nivel intermedio

  1. Pedido
    • Debes partir de la clase producto programada anteriormente en esta lista.
    • Crea una clase Pedido con atributos producto y cantidad.
    • Lanza una excepción CantidadInvalidaException si la cantidad es menor o igual a 0.
    • Prueba la clase intentando crear pedidos inválidos.
  2. Evento
    • Crea una clase Evento con atributos nombre y fecha.
    • Lanza una excepción FechaPasadaException si se intenta crear un evento con una fecha anterior a la actual.
    • Prueba la clase creando eventos en el pasado.
  3. Vehículo
    • Crea una clase Vehículo con atributos marca y velocidadMaxima.
    • Lanza una excepción VelocidadInvalidaException si la velocidad es menor que 0 o mayor que 400 km/h.
    • Prueba la clase con velocidades inválidas.
  4. CuentaUsuario
    • Crea una clase CuentaUsuario con atributos nombreUsuario y contraseña.
    • Lanza una excepción ContraseñaDebilException si la contraseña tiene menos de 8 caracteres o no contiene números.
    • Prueba la clase con contraseñas incorrectas.
  5. ReservaDeHotel
    • Crea una clase ReservaHotel con atributos nombreCliente, numNoches y numPersonas.
    • Lanza una excepción ReservaInvalidaException si el número de noches o de personas es menor o igual a 0.
    • Prueba la clase con valores inválidos.
  6. Empleado
    • Crea una clase Empleado con atributos nombre, salario y edad.
    • Lanza una excepción SalarioInvalidoException si el salario es menor que el salario mínimo.
    • Lanza otra excepción EdadInvalidaException si la edad es menor de 18 años.
    • Prueba la clase con valores no permitidos.
  7. Sistema de Reservas de Vuelo
    • Crea una clase ReservaVuelo con atributos pasajero, destino, fecha, asientosDisponibles.
    • Lanza una excepción AsientosAgotadosException si no hay asientos disponibles.
    • Prueba la clase reservando más asientos de los permitidos.
  8. Gestión de Pedidos Online
    • Crea una clase PedidoOnline con atributos cliente, totalCompra, estadoPago.
    • Lanza una excepción PagoNoRealizadoException si el estado del pago no está confirmado.
    • Prueba la clase intentando procesar un pedido sin pago.
  9. Tarjeta de Crédito
    • Crea una clase TarjetaCredito con atributos numeroTarjeta, fechaExpiracion, limiteDiario y saldoDisponible.
    • Lanza una excepción TarjetaExpiradaException si se trata de sacar dinero y la fecha de expiración ya pasó.
    • Lanza una excepción SaldoInsuficienteException si se trata de sacar más dinero del disponible.
    • Lanza una excepción LimiteSobrepasadoException si se saca más dinero del que hay en el límite en operaciones sucesivas.
    • Prueba la clase con fechas de expiración antiguas.

3. Nivel avanzado

  1. Registro de Matrículas
    • Crea una clase Matrícula con atributos estudiantes (de tipo lista) y cupoCurso.
    • Lanza una excepción CupoLlenoException si se intenta matricular un nuevo estudiante y el curso ya está lleno.
    • Prueba la clase intentando matricular más alumnos de los permitidos.
  2. Sistema de Notas
    • Crea una clase SistemaNotas con un método calcularPromedio(List<Integer> notas).
    • Lanza una excepción ListaVaciaException si no hay notas para calcular el promedio.
    • Prueba la clase con una lista vacía de notas.
  3. Registro de Usuarios
    • Crea una clase RegistroUsuarios que almacene nombres de usuario en una lista.
    • Lanza una excepción UsuarioDuplicadoException si el usuario ya existe.
    • Prueba la clase registrando usuarios repetidos.
  4. Inventario de Tienda
    • Crea una clase Inventario con un HashMap<String, Integer> para almacenar productos y su cantidad.
    • Implementa un método retirarProducto(String producto, int cantidad)
    • Lanza una excepción StockInsuficienteException si la cantidad es mayor a la disponible
    • Prueba la clase con intentos de retiro de productos en cantidades incorrectas.
  5. Biblioteca Digital
    • Crea una clase BibliotecaDigital que maneje préstamos de libros electrónicos.
    • Lanza una excepción LibroNoDisponibleException si un usuario intenta pedir un libro prestado a otro.
    • Prueba la clase intentando pedir libros ya en préstamo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.