Crear nuestra propia excepción en Java

Hola a todos, hoy os traigo como podemos crear nuestras propias excepciones con la clase Exception.

A veces, es necesario que tengamos nuestras propias excepciones, ya sea porque tengan algún tipo de código de error, etc.

Lo único que debemos hacer es crear una clase y hacer que esta herede de la clase Exception.


public class MiExcepcion extends Exception{

}

Después le ponemos los atributos que necesitamos (si queremos) y un constructor llamando a la clase padre con super(), por ejemplo:


public class MiExcepcion extends Exception{
    
    private int codigoError;
    
    public MiExcepcion(int codigoError){
        super();
        this.codigoError=codigoError;
    }
}

Para mostrar un mensaje, debemos reescribir la función getMessage(), veamos un ejemplo:


public class MiExcepcion extends Exception{
    
    private int codigoError;
    
    public MiExcepcion(int codigoError){
        super();
        this.codigoError=codigoError;
    }
    
    @Override
    public String getMessage(){
        
        String mensaje="";
        
        switch(codigoError){
            case 111:
                mensaje="Error, el numero esta entre 0 y 10";
                break;
            case 222:
                mensaje="Error, el numero esta entre 11 y 20";
                break;
            case 333:
                mensaje="Error, el numero esta entre 21 y 30";
                break;
        }
        
        return mensaje;
        
    }
    
}

Se puede hacer de varias maneras, este es un ejemplo, tambien puedes pasarle el mensaje al crear al excepción.

Veamos el ejemplo completo:

—Clase MiExcepcion


public class MiExcepcion extends Exception{
    
    private int codigoError;
    
    public MiExcepcion(int codigoError){
        super();
        this.codigoError=codigoError;
    }
    
    @Override
    public String getMessage(){
        
        String mensaje="";
        
        switch(codigoError){
            case 111:
                mensaje="Error, el numero esta entre 0 y 10";
                break;
            case 222:
                mensaje="Error, el numero esta entre 11 y 20";
                break;
            case 333:
                mensaje="Error, el numero esta entre 21 y 30";
                break;
        }
        
        return mensaje;
        
    }
    
}

—Clase ejecutable


public class EjemploPropiaExcepcion {

    public static void main(String[] args) {

        int num;

        try {

            num = 5;

            if (num >= 0 && num <= 10) {
                throw new MiExcepcion(111);
            } else if (num > 10 && num <= 20) {
                throw new MiExcepcion(222);
            } else if (num > 20 && num <= 30) {
                throw new MiExcepcion(333);
            }

        } catch (MiExcepcion ex) {
            System.out.println(ex.getMessage());
        }

    }

}

Como veis, según el número que pongamos lanzará una excepción u otra, se capturará y se mostrara el error, segun el codigo que haya puesto al crear la excepción.

Para el caso de num = 5, se veria este mensaje:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

¿Te ha gustado y quieres apoyarme? ¡Sé mi patrón!
Etiquetas

Deja un comentario

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