Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Manejo de excepciones de Java

Manejo de excepciones de Java

En el tutorial, aprenderemos sobre diferentes enfoques de manejo de excepciones en Java con la ayuda de ejemplos.

En el último tutorial, aprendimos sobre las excepciones de Java. Sabemos que las excepciones terminan anormalmente la ejecución de un programa.

Por eso es importante manejar las excepciones. Aquí hay una lista de diferentes enfoques para manejar excepciones en Java.


1. Java intenta... atrapar bloque

El bloque try-catch se usa para manejar excepciones en Java. Esta es la sintaxis de try...catch bloque:

try {
  // code
}
catch(Exception e) {
  // code
}

Aquí, hemos colocado el código que podría generar una excepción dentro del try bloquear. Cada try bloque es seguido por un catch bloquear.

Cuando ocurre una excepción, es capturada por el catch bloquear. El catch el bloque no se puede usar sin el try bloquear.

Ejemplo:Manejo de excepciones usando try...catch

class Main {
  public static void main(String[] args) {

    try {

      // code that generate exception
      int divideByZero = 5 / 0;
      System.out.println("Rest of code in try block");
    }
    
    catch (ArithmeticException e) {
      System.out.println("ArithmeticException => " + e.getMessage());
    }
  }
}

Salida

ArithmeticException => / by zero

En el ejemplo, estamos tratando de dividir un número por 0 . Aquí, este código genera una excepción.

Para manejar la excepción, hemos puesto el código, 5 / 0 dentro del try bloquear. Ahora, cuando ocurre una excepción, el resto del código dentro del try se salta el bloque.

El catch El bloque captura la excepción y se ejecutan las declaraciones dentro del bloque catch.

Si ninguna de las declaraciones en el try bloque genera una excepción, el catch se salta el bloque.


2. Java finalmente bloque

En Java, el finally bloque siempre se ejecuta sin importar si hay una excepción o no.

El finally bloque es opcional. Y, por cada try bloque, solo puede haber un finally bloquear.

La sintaxis básica de finally bloque es:

try {
  //code
}
catch (ExceptionType1 e1) { 
  // catch block
}
finally {
  // finally block always executes
}

Si ocurre una excepción, el finally el bloque se ejecuta después del try...catch bloquear. De lo contrario, se ejecuta después del bloque try. Para cada try bloque, solo puede haber un finally bloquear.


Ejemplo:Manejo de excepciones de Java usando el bloque finalmente

class Main {
  public static void main(String[] args) {
    try {
      // code that generates exception
      int divideByZero = 5 / 0;
    }

    catch (ArithmeticException e) {
      System.out.println("ArithmeticException => " + e.getMessage());
    }
    
    finally {
      System.out.println("This is the finally block");
    }
  }
}

Salida

ArithmeticException => / by zero
This is the finally block

En el ejemplo anterior, estamos dividiendo un número por 0 dentro del try bloquear. Aquí, este código genera un ArithmeticException .

La excepción es capturada por el catch bloquear. Y luego el finally se ejecuta el bloque.

Nota :Es una buena práctica usar el finally bloquear. Es porque puede incluir códigos de limpieza importantes como,


3. Java lanza y lanza palabra clave

Java throw La palabra clave se usa para lanzar explícitamente una única excepción.

Cuando throw una excepción, el flujo del programa se mueve desde el try bloque al catch bloquear.

Ejemplo:Manejo de excepciones usando Java throw

class Main {
  public static void divideByZero() {

    // throw an exception
    throw new ArithmeticException("Trying to divide by 0");
  }

  public static void main(String[] args) {
    divideByZero();
  }
}

Salida

Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0
        at Main.divideByZero(Main.java:5)
        at Main.main(Main.java:9)

En el ejemplo anterior, lanzamos explícitamente el ArithmeticException usando el throw palabra clave.

Del mismo modo, el throws La palabra clave se usa para declarar el tipo de excepciones que pueden ocurrir dentro del método. Se utiliza en la declaración del método.

Ejemplo:Java arroja una palabra clave

import java.io.*;

class Main {
  // declareing the type of exception
  public static void findFile() throws IOException {

    // code that may generate IOException
    File newFile = new File("test.txt");
    FileInputStream stream = new FileInputStream(newFile);
  }

  public static void main(String[] args) {
    try {
      findFile();
    }
    catch (IOException e) {
      System.out.println(e);
    }
  }
}

Salida

java.io.FileNotFoundException: test.txt (The system cannot find the file specified)

Cuando ejecutamos este programa, si el archivo test.txt no existe, FileInputStream lanza un FileNotFoundException que extiende el IOException clase.

El findFile() especifica que un IOException se puede tirar El main() method llama a este método y maneja la excepción si se lanza.

Si un método no maneja excepciones, el tipo de excepciones que pueden ocurrir dentro de él debe especificarse en el throws cláusula.

Para obtener más información, visite Java throw and throws.


Java

  1. Operadores Java
  2. Comentarios Java
  3. Java para cada bucle
  4. Cadenas Java
  5. Interfaz Java
  6. Clase anónima de Java
  7. Prueba de Java ... captura
  8. Prueba de Java con recursos
  9. Anotaciones Java
  10. Aserciones de Java
  11. Variable estática en Java:¿Qué es el bloque estático y el método? [Ejemplo]