Saltar al contenido principal
Página

Tema 3.5 - Excepciones

Cuando realizamos una ejecución de código Java, pueden ocurrir diferentes errores, estos pueden ser; errores de codificación cometidos por el programador, errores debidos a una entrada incorrecta u otras cosas imprevisibles.

Cuando se produce un error, Java normalmente se detendrá y generará un mensaje de error. El término técnico para esto es: Java lanzará una excepción (lanzará un error).

Para que realicemos el manejo de estas excepciones es donde entra la sentencia try/catch, donde:

  • La declaración try nos permite definir un bloque de código para que se pruebe si hay errores mientras se ejecuta.
  • La declaración catch nos permite definir un bloque de código para ejecutarse, si ocurre un error en el bloque try.

La sentencia try/catch siempre debe tener el formato siguiente:

try {
    sentencias;
} catch (ClaseException e) {
    sentencias;
}


Veamos un ejemplo de como utilizar esta sentencia:

public class MyClass {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}


Como podemos ver en la línea para imprimir existe un error dado que en el arreglo no existe la posición 10, por lo cual, el programa deja de funcionar; al agregar el try/catch como podemos ver en el siguiente fragmento de código:

public class MyClass {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}


Cuando realizamos la ejecución del código, podemos ver que este también falla, pero al tener la sentencia try/catch, este entra por el catch y nos imprime el mensaje Something went wrong.

También en la sentencia try/catch tenemos el finally, lo cual, nos permite permite ejecutar código, después try...catch, independientemente del resultado:

public class MyClass {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}


Cuando realizamos la ejecución de este fragmento de código, sabemos que va a ejecutar un fallo por lo que nos imprime el mensaje Something went wrong. y ademas tambien entra por el finally y nos imprime el mensaje The 'try catch' is finished.

Última modificación: miércoles, 16 de marzo de 2022, 10:09