🧩 Ejemplo POO + throw, throws y try-catch
Ejemplo practico de Manejo Estructurado de Excepciones en Java POO
Ver base teórica previa🚀
🎯 Escenario:
Sistema simple de registro de usuarios, donde:
Se valida la edad (con
throw)Se simula lectura de datos (con
throws)Se manejan errores en
main(contry-catch)
🏗️ 1. Clase Usuario (Entidad)
public class Usuario {
private String nombre;
private int edad;
public Usuario(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return edad;
}
}
⚠️ 2. Excepción personalizada
public class EdadInvalidaException extends Exception {
public EdadInvalidaException(String mensaje) {
super(mensaje);
}
}
🔎 Esto es clave en POO: crear tus propias reglas de error.
🧠 3. Clase ServicioUsuario (Lógica de negocio)
import java.io.*;
public class ServicioUsuario {
// Uso de throw
public void validarEdad(Usuario usuario) throws EdadInvalidaException {
if (usuario.getEdad() < 18) {
throw new EdadInvalidaException("El usuario " + usuario.getNombre() + " es menor de edad");
}
}
// Uso de throws
public void cargarDatos() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("datos.txt"));
System.out.println("Leyendo datos: " + br.readLine());
br.close();
}
}
🚀 4. Clase principal Main (Ejecución)
import java.io.IOException;
public class Main {
public static void main(String[] args) {
Usuario usuario = new Usuario("Edvin", 16);
ServicioUsuario servicio = new ServicioUsuario();
try {
servicio.validarEdad(usuario); // puede lanzar excepción personalizada
servicio.cargarDatos(); // puede lanzar IOException
System.out.println("Usuario registrado correctamente");
} catch (EdadInvalidaException e) {
System.out.println("Error de negocio: " + e.getMessage());
} catch (IOException e) {
System.out.println("Error de archivo: " + e.getMessage());
} finally {
System.out.println("Proceso finalizado (finally)");
}
}
}
🧠 Lógica clave
Puedes dividirlo así:
🔹 Nivel 1: POO
Usuario→ datosServicioUsuario→ lógicaMain→ ejecución
🔹 Nivel 2: Excepciones
throw→ lanzo error manualthrows→ aviso que el método puede fallartry-catch→ controlo errores
🔥 Resultado esperado al ejecutar
Si edad = 16:
Error de negocio: El usuario Edvin es menor de edad
Proceso finalizado (finally)
Si cambias edad a 20 pero no existe el archivo:
Error de archivo: datos.txt (No such file or directory)
Proceso finalizado (finally)

Comentarios
Publicar un comentario