Ejemplos

Ejemplo 03: Uso de Enum, Excepciones en Java

En este ejemplo, se muestra cómo utilizar enumeraciones (Enum) y manejo de excepciones en Java para crear un programa que maneje diferentes tipos de errores de manera eficiente.

Descripción del Problema

Eres un desarrollador de software que necesita crear un programa en Java que maneje un conjunto de alimentos y sus categorías. Quieres utilizar enumeraciones (Enum) para definir las categorías de alimentos y manejar excepciones para gestionar errores como alimentos no encontrados o categorías inválidas.

Solución

Paso 1: Crear la enumeración (Enum)

Primero, creamos una enumeración llamada CategoriaAlimento que define las diferentes categorías de alimentos.

public enum CategoriaAlimento {
    FRUTA,
    VERDURA,
    CARNE,
    LACTEO,
    GRANO
}

Paso 2: Crear la clase Alimento

Luego, creamos una clase Alimento que tiene un nombre y una categoría.

public class Alimento {
    private String nombre;
    private CategoriaAlimento categoria;

    public Alimento(String nombre, CategoriaAlimento categoria) {
        this.nombre = nombre;
        this.categoria = categoria;
    }

    public String getNombre() {
        return nombre;
    }

    public CategoriaAlimento getCategoria() {
        return categoria;
    }

    @Override
    public String toString() {
        return nombre + " (" + categoria + ")";
    }
}

Paso 3: Manejar excepciones

Ahora, creamos una clase AlimentoManager que maneja una lista de alimentos y utiliza excepciones para gestionar errores.

import java.util.ArrayList;
import java.util.List;

public class AlimentoManager {
    private List<Alimento> alimentos;

    public AlimentoManager() {
        alimentos = new ArrayList<>();
    }

    public void agregarAlimento(Alimento alimento) {
        alimentos.add(alimento);
    }

    public Alimento buscarAlimento(String nombre) throws AlimentoNoEncontradoException {
        for (Alimento alimento : alimentos) {
            if (alimento.getNombre().equalsIgnoreCase(nombre)) {
                return alimento;
            }
        }
        throw new AlimentoNoEncontradoException("Alimento no encontrado: " + nombre);
    }
}

Paso 4: Crear la excepción personalizada

Finalmente, creamos una excepción personalizada llamada AlimentoNoEncontradoException para manejar el caso cuando un alimento no se encuentra en la lista.

public class AlimentoNoEncontradoException extends Exception {
    public AlimentoNoEncontradoException(String mensaje) {
        super(mensaje);
    }
}

Paso 5: Usar el programa

Ahora podemos usar el programa para agregar alimentos y buscar un alimento específico, manejando las excepciones adecuadamente.

void main() {
    AlimentoManager manager = new AlimentoManager();
    manager.agregarAlimento(new Alimento("Manzana", CategoriaAlimento.FRUTA));
    manager.agregarAlimento(new Alimento("Zanahoria", CategoriaAlimento.VERDURA));
    manager.agregarAlimento(new Alimento("Pollo", CategoriaAlimento.CARNE));

    try {
        Alimento alimento = manager.buscarAlimento("Manzana");
        System.out.println("Alimento encontrado: " + alimento);
        
        // Intentar buscar un alimento que no existe
        manager.buscarAlimento("Pera");
    } catch (AlimentoNoEncontradoException e) {
        System.out.println(e.getMessage());
    }
}

Conclusión

En este ejemplo, hemos demostrado cómo utilizar enumeraciones (Enum) para definir categorías de alimentos y cómo manejar excepciones para gestionar errores de manera eficiente en Java. Esto permite que nuestro programa sea más robusto y fácil de mantener, ya que podemos manejar situaciones inesperadas sin que el programa se bloquee.

Copyright Jesús Aurelio Castro Magaña © 2026