Tutoriales de Java

Java INICIO Introducción a Java Introducción a Java Sintaxis Java Comentarios Java Variables Java Tipos de datos Java Conversión de tipos de Java Operadores Java Cadenas Java Matemáticas Java Booleanos de Java Java si... si no Conmutador de Java Ciclo while de Java Java para bucle Java Pausa/Continuar Matrices de Java

Métodos de Java

Métodos de Java Parámetros del método Java Sobrecarga del método Java Alcance de Java Recursión de Java

Clases Java

programación orientada a objetos de Java Clases/Objetos Java Atributos de clase de Java Métodos de clase Java Constructores Java Modificadores de Java Encapsulación de Java Paquetes Java/API Herencia de Java Polimorfismo de Java Clases internas de Java Abstracción de Java Interfaz Java Enumeraciones de Java Entrada de usuario de Java Fecha Java Java ArrayList Java LinkedList Mapa hash de Java HashSet de Java Iterador de Java Clases contenedoras de Java Excepciones de Java Java expresión regular Subprocesos de Java Java lambda

Manejo de archivos Java

Archivos Java Java crear/escribir archivos Archivos de lectura de Java Eliminar archivos de Java

Java Cómo

Añadir dos números

Referencia Java

Palabras clave de Java Métodos de cadena de Java Métodos matemáticos de Java

Ejemplos de Java

Ejemplos de Java Compilador Java Ejercicios Java Cuestionario Java Certificado Java


Excepciones de Java - Try... Catch


Excepciones de Java

Al ejecutar código Java, pueden ocurrir diferentes errores: errores de codificación por parte del programador, errores debido a una entrada incorrecta u otros imprevistos.

Cuando ocurre 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 (arrojará un error).


Java prueba y atrapa

La trydeclaración le permite definir un bloque de código para probar errores mientras se ejecuta.

La catchinstrucción le permite definir un bloque de código que se ejecutará si ocurre un error en el bloque de prueba.

Las palabras clave tryy catchvienen en pares:

Sintaxis

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

Considere el siguiente ejemplo:

Esto generará un error, porque myNumbers[10] no existe.

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

La salida será algo como esto:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

Si ocurre un error, podemos usar try...catchpara detectar el error y ejecutar algún código para manejarlo:

Ejemplo

public class Main {
  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.");
    }
  }
}

La salida será:

Something went wrong.

Por fin

La finallyinstrucción le permite ejecutar código después try...catchde , independientemente del resultado:

Ejemplo

public class Main {
  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.");
    }
  }
}

La salida será:

Something went wrong.
The 'try catch' is finished.


La palabra clave de lanzamiento

La throwdeclaración le permite crear un error personalizado.

La throwinstrucción se utiliza junto con un tipo de excepción . Hay muchos tipos de excepciones disponibles en Java: ArithmeticException, FileNotFoundException, ArrayIndexOutOfBoundsException, SecurityException, etc:

Ejemplo

Lanza una excepción si la edad es menor de 18 años (imprime "Acceso denegado"). Si la edad es mayor de 18 años, escriba "Acceso concedido":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

La salida será:

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

Si la edad fuera 20, no obtendría una excepción:

Ejemplo

checkAge(20);

La salida será:

Access granted - You are old enough!

Ponte a prueba con ejercicios

Ejercicio:

Inserte las partes que faltan para manejar el error en el código a continuación.

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}