Otras lecciones del Curso de Java
¿Qué es IO en Java?
¿Cúales son los Operadores en Java?
¿Qué tipos de Variables hay en Java?
¿Cómo funciona Continue y Break en Java?
¿Cómo aplicar un Try Catch y Finally en Java?
¿Cómo utilizar el método super en Java?
¿Cómo trabajar con listas en Java?
¿Cuáles son los métodos de la clase String en Java?
¿Qué es un entorno de desarrollo en Java?
¿Qué es la Sobreescritura de métodos en Java?
¿Cómo utilizar un return en Java?
¿Cómo hacer un Hola Mundo en Java?
¿Cómo utilizar Throw y throws en Java?
¿Cómo hacer comentarios en Java?
¿Cuáles son las Palabras reservadas en Java?
Variables de entorno en Java
Características y estadísticas de Java e índice TIOBE
Estructura de proyecto, paquetes y clases en Java
Qué es una función en Java
¿Cómo funcionan las Funciones Java?
Operadores aritméticos en Java
Operadores de comparación en Java
Funciones anónimas en Java
Cómo invocar una función en Java
Atajos de teclado para IntelliJ
¿Qué es la Sobrecarga de funciones en Java?
Operadores lógicos en Java
Debug en Java
Como se crea una función en Java
¿Cómo crear Sentencias Switch en Java?
Bucles for en Java
¿Cómo hacer sentencias If e If else en Java?
¿Cómo funcionan los Bucles While en Java?
¿Qué son los objetos en Java?
¿Qué es el modificador static en Java y cómo se utiliza?
¿Qué es la herencia en Java?
¿Qué son los constructores en Java y cómo se utilizan?
¿Cómo crear clases en Java?
¿Qué es el Polimorfismo en Java?
¿Qué son las Clases Abstractas en Java?
¿Qué es la Programación genérica en Java?
¿Qué son las Interfaces de Java?
Implementación de una interface en Java
¿Cómo se hace refactoring en Java?
¿Cómo trabajar con Maps en Java?
¿Como funcionan los arrays en Java?
¿Qué es la clase Scanner en Java?
Introducción a Swing en Java
¿Quieres descubrir más cosas como Generar excepciones en Java?¡Apuntate a nuestro campus y empieza a aprender con nosotros y con toda la comunidad!

Escribir código, no solo en Java, sino en cualquier lenguaje de programación, no está exento de que se produzcan errores que impliquen que posiblemente la aplicación no se ejecute de manera correcta.

Java tiene toda una clase que sirve para manejar este tipo de situaciones, se trata Throwable, que a su vez tiene las subclases exceptionerror.

Las excepciones, en particular, se producen cuando el código que se está ejecutando viola de alguna manera las restricciones que tiene Java como lenguaje de programación. 

Es vital aprender el manejo de las excepciones en Java para crear aplicaciones que funcionen y resuelvan las necesidades para las que fueron diseñadas.

¿Cómo generar excepciones en Java?

Java cuenta con excepciones predefinidas (IOException) que muestran a quien está programando que hay operaciones que no se están llevando a cabo de una manera correcta. 

Por otro lado, también se pueden crear excepciones para que el código se ejecute aún en caso de presentarse ciertos fallos 

Una excepción no verificada es una incidencia que se produce durante la ejecución del programa (runtime) que interrumpe el flujo de las instrucciones. Este tipo de excepciones pueden ser capturadas y manejadas para que el código se ejecute hasta el final. 

En el siguiente código hay un típico ejemplo de una excepción no verificada o generada durante la ejecución:

public class Main {
    public static void main(String[] args) {
        dividir(4, 0);
    }
    public static int dividir(int A, int B) {
        return A / B;
    }

}

Al ejecutar este código, Java detendrá la ejecución del programa y arrojará un mensaje informando que se ha producido una ArithmeticException al intentar dividir un número entre cero. Esto puede ser manejado así:

Capturando una excepción

Una de las maneras de gestionar una excepción no verificada o runtime de Java es usando la construcción  try … catch que permite evaluar un bloque de código y arroja un mensaje si hay algún problema que impida entregar el resultado esperado.

Siguiendo con el ejemplo anterior:

public class Main {

    public static void main(String[] args) {
        dividir(4, 0);

    }
    public static int dividir(int A, int B) {
        int resultado = 0;
        try { // bloque de instrucciones a evaluar
            resultado = A / B;
            System.out.println("El resultado es: " + resultado);
        } catch (ArithmeticException e) { //se crea un objeto de la clase mencionada
            System.out.println("No se puede dividir entre 0");
        }
        return resultado;

    }

}

Generando una excepción con throws y throw en Java

Otra forma de resolver esto es usando para ello la sentencia throws que señala la posibilidad de que se presenten una o varias excepciones y gestiona su manejo.

En el uso de esta sentencia se debe indicar el tipo de las excepciones que posiblemente se presenten:

Mostrando esto con el ejemplo que se ha usado hasta ahora:

public class Main {

    public static void main(String[] args) {
        try {
            dividir(4, 0);

        } catch (ArithmeticException e) {
            System.out.println("No es posible hacer esta operación");
        }
    }

    public static int dividir(int A, int B) throws ArithmeticException {
        int resultado = 0;
        try { // bloque de instrucciones a evaluar
            resultado = A / B;
            System.out.println("El resultado es: " + resultado);
        } catch (ArithmeticException e) {
            throw new ArithmeticException(); //se crea un objeto de esa excepción
        }
        return resultado;

    }

}

Resumiendo

En Java el manejo de excepciones se gestiona utilizando las palabras: try, catch, throw y throws.  

La manera correcta de hacerlo es: 

  1. El código que puede generar una excepción se encierra en una sentencia try.
  2. Si efectivamente se produce la excepción, esta será detectada por el bloque catch y ahí estarán las indicaciones para manejarla.
  3. Si se quiere generar una excepción, es necesario emplear throw para indicarla y se debe especificar con la sentencia throws dónde y cómo será gestionada.
¿Todavía no te has apuntado a nuestro Bootcamp?
Tenemos muchos cursos para ofrecerte y ¡TOTALMENTE GRATIS! Estos son algunos de ellos: