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.

Compartir

Deja una respuesta

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