Boletín 503. Excepciones
En este boletín trabajaremos la creación de excepciones, cómo capturalas y lanzarlas.
Ejercicios
Ejercicio 1. Sigue los siguientes pasos:
- Crea una clase
ExcepcionNumeroNegativoque herede deException:- Crea un constructor que permita un mensaje personalizado.
- Crea una clase
ExcepcionDNIInvalidoque herede deException:- Crea un constructor que permita un mensaje personalizado.
- Crea un método estático
boolean comprobarDNI(String dni)que reciba una cadena de texto y compruebe si es un DNI válido; en caso afirmativo devolverátrue, y en caso contrario devolveráfalse.
- Crea una clase
Facturacon las siguientes características:- Debes almacenar el número de factura (este debe ser siempre único y correlativo al anterior número), el DNI del cliente y la cantidad.
- Crea
gettersysettersnecesarios. - Modifica el setter de la cantidad para que lance la excepción
ExcepcionNumeroNegativocon el mensajeLa cantidad no puede ser negativasi la cantidad introducida es menor que 0. - Modifica el setter del DNI para que lance la excepción
ExcepcionDNIInvalidosi el DNI no es válido con el mensajeEl DNI es inválido. - Crea un constructor que reciba un DNI y la cantidad. No captures las excepciones
ExcepcionNumeroNegativoyExcepcionDNIInvalido. - Documenta el constructor.
- Redefine el método
toString()con el formato<Numero_factura>: <DNI> -> <cantidad> €.
- Realiza el siguiente programa principal:
- Crea una
HashTablepara almacenar las facturas donde la clave es el número de factura y el valor un objeto de la claseFactura. - Introduce las siguientes líneas de código:
String[] dnis = new String[10];
double[] precios = new double[10];
// Añadir datos a los vectores
dnis[0] = "23977458G"; precios[0] = -150.75; // Precio inválido
dnis[1] = "39339438P"; precios[1] = 200.00; // Válido
dnis[2] = "34567890C"; precios[2] = 99.99; // DNI inválido
dnis[3] = "45678901D"; precios[3] = 50.50; // DNI inválido
dnis[4] = "10184419L"; precios[4] = 300.00; // Válido
dnis[5] = "25679974Z"; precios[5] = 450.00; // Válido
dnis[6] = "69013198L"; precios[6] = -75.25; // Precio inválido
dnis[7] = "89012345H"; precios[7] = 125.75; // DNI inválido
dnis[8] = "54924888Z"; precios[8] = 50.50; // Válido
dnis[9] = "96396159P"; precios[9] = -200.00; // Precio inválido - Utiliza los dos vectores anteriores para crear las facturas. Cada índice de los vectores corresponde a los datos de una factura.
- Captura las excepciones de manera separada que puedan ocurrir en la creación de las facturas. Para cada excepción imprime el valor que es inválido. NOTA: para cada par de valores, solo uno es inválido.
- Para aquellas facturas que se puedan crear sin lanzar una excepción, almacénalas en la
HashTablede facturas. - Recorre todas las facturas e imprímelas por pantalla.
- Crea una
Presta atención a los casos en los cuales no se pueda crear una factura, que no quede el número de factura sin utilizar.