Introducción a las excepciones en Java

Introducción a las excepciones en Java

En esta ocasión, verás una pequeña introducción a las excepciones en Java.


La importancia del manejo de excepciones en el desarrollo de software

El manejo adecuado de excepciones es muy importante en el desarrollo de software, ya que permite detectar errores y fallos que puedan ocurrir durante la ejecución del programa, lo que ayuda a mejorar la calidad del software.

Cuando un error o excepción ocurre en tiempo de ejecución (mientras se está ejecutando el programa), es posible que este se detenga o se cierre de manera inesperada si la excepción no se maneja adecuadamente o no se maneja en absoluto. Esto puede resultar en una mala experiencia para el usuario y, en casos extremos, puede provocar la pérdida de datos.

Es por eso que los programadores deben ser conscientes de los tipos de excepciones que pueden ocurrir en su código y deben manejarlas adecuadamente para evitar que el programa se detenga de manera inesperada o para proporcionar información útil al usuario sobre el error que ha ocurrido.

¿Qué es una excepción en Java?

Una excepción es un error que ocurre durante la ejecución de un programa. En Java, las excepciones se dividen en dos tipos: las excepciones comprobadas y las excepciones no comprobadas.

Tipos de excepciones en Java

Las excepciones comprobadas son errores que el compilador de Java sabe que pueden ocurrir en tu programa, por lo que te obliga a tomar medidas para manejarlos. Esto significa que debes escribir un código que capture el error y lo maneje para evitar que el programa se detenga de manera inesperada. Si no haces esto, el compilador no te permitirá compilar tu programa.

Las excepciones no comprobadas son errores que el compilador de Java no espera que ocurran, pero que pueden ocurrir durante la ejecución del programa. En este caso, no es necesario escribir un código que capture la excepción, pero es recomendable hacerlo para evitar que el programa se detenga de manera inesperada.


Bien, pero ¿por qué el compilador puede esperar ciertas excepciones y otras no?

Por ejemplo, cuando se abre un archivo, puede ocurrir una excepción si el archivo no existe. El compilador sabe que esta excepción puede ocurrir y, por lo tanto, requiere que quién programa maneje la excepción de alguna manera. Si no maneja la excepción, el compilador no permitirá que el programa se compile. Esos son los errores que no nos dejaban ejecutarlo hasta que los arregláramos.

Como ejemplo de las excepciones no comprobadas, una excepción NullPointerException, que puede ocurrir cuando se intenta acceder a un objeto que no ha sido inicializado. El compilador no requiere que el programador maneje esta excepción específica, pero se recomienda que se manejen las excepciones no comprobadas para evitar que el programa se detenga de manera inesperada, así que estas las tenemos que predecir según el tipo de elementos y nuestra experiencia. Hay técnicas que se denominan como "programación defensiva", las cuales, se basan en esto mismo, prever que podría hacer mal un usuario y también otros posibles factores externos.

La propagación de una excepción

La propagación de una excepción se refiere al proceso de transferir la información de la excepción a otro lugar del código donde pueda ser manejada adecuadamente. Por ejemplo, si un método detecta una excepción, puede propagarla a otro método que tenga la capacidad de manejarla.

Algunos ejemplos de excepciones en Java

Excepción de división por cero

Si intentamos dividir un número por cero, se lanzará una ArithmeticException. Esta va a ser una excepción no comprobada, ya que el programa va a compilar. En un principio, no hay errores. El error ocurrirá en el caso de que pongamos un cero en uno de los Scanner.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        System.out.print("Ingresa el valor de a: ");
        int a = entrada.nextInt();
        System.out.print("Ingresa el valor de b: ");
        int b = entrada.nextInt();
        int c = a / b;
        System.out.println("El resultado de la división es: " + c);

    }
}

Error en la consola:

Ingresa el valor de a: 10
Ingresa el valor de b: 0
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Main.main(Main.java:10)

Excepción de archivo no encontrado

Si tenemos un archivo al que queremos acceder con Java, una forma es la que ves en este código:

import java.io.*;

public class Main {
    public static void main(String[] args) {
        FileReader archivo = new FileReader("archivo.txt");
    }
}

Aunque el archivo sepamos que existe, Java nos obliga a tomar buenas prácticas. Esto se trata de una excepción comprobada "FileNotFoundException", la cual, la tendremos que manejar obligatoriamente, para que tenga al menos dos posibles salidas, una si el archivo existe y otra por si no existe o no está en la ruta correcta.

Esto lo haremos a partir del siguiente capítulo.

No te pierdas nada del curso de Java, Kotlin y Android Studio.


Deja una respuesta

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

backend frontend Entrada anterior Introducción al Backend y Frontend: Guía para principiantes
curso sql Entrada siguiente Las funciones de agregado SQL