Excepciones Personalizadas

En este ejercicio, aprenderás a crear y manejar **excepciones personalizadas en Java**. Definirás tus propias clases de excepciones para representar errores específicos dentro de un programa y utilizarás las palabras clave throw y throws para generar y controlar estos errores de manera eficiente. Este enfoque te permitirá mejorar la **robustez** y **mantenibilidad** de tus aplicaciones, gestionando adecuadamente situaciones excepcionales en el código.

Tema

Manejo de Archivos y Excepciones Avanzadas

Ejercicio Java

En este ejercicio, crearás un programa en Java que implemente **excepciones personalizadas**. Para ello, definirás una **clase de excepción** llamada SaldoInsuficienteException, que se activará cuando un usuario intente retirar más dinero del que tiene disponible en su cuenta bancaria. Luego, implementarás una clase CuentaBancaria con un método retirar() que lanzará esta excepción cuando sea necesario.

Instrucciones:

  1. Crea una **clase de excepción personalizada** llamada SaldoInsuficienteException, que extienda de Exception y tenga un constructor que reciba un mensaje de error.
  2. Crea una **clase** llamada CuentaBancaria con atributos saldo y titular, e implementa un método retirar(double cantidad) que verifique si hay suficiente saldo. Si no lo hay, lanza una instancia de SaldoInsuficienteException.
  3. En el método main(), crea una instancia de CuentaBancaria y prueba la funcionalidad de retiro, manejando la excepción con un bloque try-catch.

Este ejercicio te ayudará a comprender cómo crear y utilizar **excepciones personalizadas** en Java para mejorar el control de errores y la seguridad de las aplicaciones.


// Definición de una excepción personalizada
class SaldoInsuficienteException extends Exception {
    public SaldoInsuficienteException(String mensaje) {
        super(mensaje);
    }
}

// Clase CuentaBancaria
class CuentaBancaria {
    private String titular;
    private double saldo;

    public CuentaBancaria(String titular, double saldo) {
        this.titular = titular;
        this.saldo = saldo;
    }

    public void retirar(double cantidad) throws SaldoInsuficienteException {
        if (cantidad > saldo) {
            throw new SaldoInsuficienteException("Saldo insuficiente para retirar " + cantidad + "€");
        }
        saldo -= cantidad;
        System.out.println("Retiro exitoso de " + cantidad + "€. Saldo restante: " + saldo + "€");
    }

    public void mostrarSaldo() {
        System.out.println("Saldo actual de " + titular + ": " + saldo + "€");
    }
}

public class Main {
    public static void main(String[] args) {
        // Crear una cuenta bancaria con saldo inicial
        CuentaBancaria cuenta = new CuentaBancaria("Juan Pérez", 500);

        // Mostrar saldo inicial
        cuenta.mostrarSaldo();

        // Intentar realizar operaciones de retiro
        try {
            cuenta.retirar(200);
            cuenta.retirar(400); // Este retiro generará una excepción
        } catch (SaldoInsuficienteException e) {
            System.out.println("Error: " + e.getMessage());
        }

        // Mostrar saldo final
        cuenta.mostrarSaldo();
    }
}

 Salida:

Saldo actual de Juan Pérez: 500€
Retiro exitoso de 200€. Saldo restante: 300€
Error: Saldo insuficiente para retirar 400€
Saldo actual de Juan Pérez: 300€

Este programa demuestra cómo se pueden utilizar **excepciones personalizadas** en Java para mejorar el manejo de errores. La clase SaldoInsuficienteException permite capturar y manejar intentos de retiro no permitidos en la clase CuentaBancaria. Al ejecutar el programa, se observa cómo una operación válida de retiro se completa con éxito, mientras que un intento de retiro excesivo genera una excepción controlada.


 Comparte este ejercicio JAVA