fbpx
Seleccionar página

Las excepciones en Java son eventos que interrumpen el funcionamiento normal de un programa.

Tipos de excepciones en Java

En nuestros programas podemos tener dos tipos de excepciones en java, errores de compilación y errores en tiempo de ejecución.

Errores en tiempo de compilación

Estos errores son por lo general de la forma sintáctica, es decir cuando nos equivocamos al estar escribiendo nuestro código.
Estos son los más fáciles de corregir ya que cuando se compila el programa, el compilador indica que hay errores y no permite la compilación hasta que el error es corregido.

Errores en tiempo de ejecución

Estos son errores un poco más complejos y difíciles de detectar, ya que al momento de compilar no existe error alguno.
Por lo regular este tipo de errores se atribuyen a la interacción entre el usuario y el programa.
Suelen ser errores de lógica para los cuales el programa tal vez no esté preparado.

Por ejemplo, un programa realiza una suma de dos números, pero el usuario en lugar de introducir dos números para realizar la operación introduce una letra y un número.

[wpsm_ads1]
Esto terminara en error si el programa no está preparado para soportar dicho error.

Try-catch

Para poder soportar errores, java implementa una estructura llamada “try-catch”, la cual consiste en usar un bloque de código donde van todas las instrucciones deseadas.

Después un bloque donde van registrándose todos los posibles errores que puedan suceder.
De forma opcional se puede implementar un bloque “finally” el cual, si es implementado, se ejecutarán las instrucciones que contenga exista o no exista algún tipo de error.

Sintaxis:

try{
    instrucciones;
} catch (Excepcion ex1) {
    instrucciones;
} catch (Excepcion ex2) {
    instrucciones;
} finally {
    instrucciones;
}

En java a los errores que suceden se les llama Excepciones, java ya tiene catalogados todos los tipos de excepciones y para ellos creo una Clase llamada “Exception”.

Cambien creo muchas clases, tantas como errores existen, y dichas clases heredan de la clase Exception.

En el bloque del “catch” se puede poner el nombre de la excepción que se crea, se puede lanzar con el código que estamos ejecutando y de esa forma tratar de realizar alguna acción para contrarrestar el error.

Ejemplo sin try-catch

A continuación, se muestra un programa en el cual se crea una variable de tipo String que es inicializada en un valor igual a NULL. Después se intenta imprimir el valor de la variable.

En la parte de abajo se observa que está marcando un error el programa y dice que hay una excepción de tipo NullPointerException.
Esto es un error que sucede cuando queremos utilizar objetos que no han sido inicializados o que están apuntando a un valor NULL.
Como se observa, el programa termina repentinamente y NO se puede hacer ninguna acción de recuperación.

[wpsm_ads2]
Ejemplo de código java sin try catch en el manejo de Excepciones en Java

Ejemplo con try-catch

Cómo se puede observar en la siguiente imagen, ya se está tratando el programa con un bloque try, este intentara ejecutar las instrucciones que estén dentro del bloque.

Si pasa algún error, el control de la ejecución pasara a manos del bloque catch y este ejecutara las instrucciones que en él se contengan para tratar de que el programa no termine de forma inesperada.

Ejemplo de código java con try catch manejando Excepciones en Java

Resultado: Cómo se puede ver, ya se controló de forma exitosa el error.

Resultado de try catch

Finally

La parte de “finally” es un complemento opcional que se puede agregar a la sintaxis del try-catch, nuestra estructura puede tener tantos “catch” como queramos.

Pero puede tener un solo “finally” como en la sintaxis general que se mostró anteriormente.
[wpsm_ads1]

Sintaxis:

try{
    instrucciones;
} catch (Excepcion ex1) {
    instrucciones;
} finally {
    instrucciones;
}

Si se agrega el finally, este ejecutara las instrucciones que contenga el bloque, se encuentre o no se encuentre algún error.

Ejemplo de try catch con finally

Throw

Cuando se quiere lanzar una excepción bajo demanda, se usa la instrucción “throw”, esto nos sirve para lanzar Excepciones estándar o personalizadas dependiendo de la lógica de nuestro programa.
Por ejemplo, si una condición da verdadero lanzamos una Excepcion, si da falso la dejamos continuar.

[wpsm_ads2]
Sintaxis:

throw new NombreExcepcion("Mensaje");

Ejemplo:

En este ejemplo se realiza una condición para ver si la variable “nombre” es NULL.
Si es así, se lanza una excepción bajo demanda, la misma que es cachada en la sección del “catch” y tratada ahí mismo.

Propagación de excepciones con throw

Propagación de excepciones

Si en un método ocurre una excepción, pero no se quiere tratar en el cuerpo del método, este puede realizar una propagación de excepciones.
Esto quiere decir que va a hacer llegar dicha excepción a un nivel más arriba de ella, es decir, al programa donde se use dicho método que propagó la excepción.

Sintaxis:

public void metodo() throws Exception1, Exception2 {
   instrucciones;
}

[wpsm_ads1]
Ejemplo:
Propagación de excepciones desde un método con throw

Creación de excepciones

Java nos permite la creación de excepciones personalizadas haciendo uso de la herencia sobre la clase “Exception”.
Esto quiere decir que basta con crear una clase que herede de Exception y llame a cualquiera de sus constructores para tener una excepción totalmente personalizada.

Ejemplo:

En el ejemplo de la imagen se está creando una clase que hereda funcionalidad de la clase Exception.
También está llamando en dos de sus métodos constructores a dos de los métodos constructores de la clase Exception a través del uso de “super(parámetros)”.
Con esto ya tenemos una clase que nos va a funcionar como excepción.

Creación de excepciones heredando la Exception

Resultado:

En la siguiente imagen se puede ver el uso de nuestra excepción personalizada, desde su lanzamiento, cacheo de la excepción y la impresión del resultado en la consola.

Ejemplo de la creación de una excepción personalizada

Con esto ya estamos listos para implementar el tratamiento de excepciones en java.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies