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

Java lanza y lanza

Lanzamiento y lanzamientos de Java

En este tutorial, aprenderemos a usar las palabras clave throw y throws para el manejo de excepciones con la ayuda de ejemplos.

En Java, las excepciones se pueden clasificar en dos tipos:

Consulte Excepciones de Java para conocer en detalle las excepciones marcadas y no marcadas.

Por lo general, no necesitamos manejar excepciones no verificadas. Es porque ocurren excepciones no verificadas debido a errores de programación. Y es una buena práctica corregirlos en lugar de manipularlos.

Este tutorial ahora se centrará en cómo manejar las excepciones marcadas usando throw y throws .


Java lanza palabra clave

Usamos el throws palabra clave en la declaración del método para declarar el tipo de excepciones que pueden ocurrir dentro de él.

Su sintaxis es:

accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 … {
  // code
}

Como puede ver en la sintaxis anterior, podemos usar throws para declarar múltiples excepciones.


Ejemplo 1:Java arroja una palabra clave

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    // code that may produce 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 (No such file or directory)

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

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 que los métodos más arriba en la pila de llamadas puedan manejarlos o especificarlos usando throws palabra clave en sí.

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.


Lanzar múltiples excepciones

Así es como podemos lanzar múltiples excepciones usando el throws palabra clave.

import java.io.*;
class Main {
  public static void findFile() throws NullPointerException, IOException, InvalidClassException {
    
    // code that may produce NullPointerException
    … … … 

    // code that may produce IOException
    … … … 

    // code that may produce InvalidClassException 
    … … … 
  }

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

Aquí, el findFile() método especifica que puede arrojar NullPointerException , IOException y InvalidClassException en su throws cláusula.

Tenga en cuenta que no hemos manejado el NullPointerException . Esto se debe a que es una excepción no verificada. No es necesario especificarlo en el throws cláusula y manejarlo.


arroja palabra clave vs. intentar... atrapar... finalmente

Puede haber varios métodos que pueden causar excepciones. Escribiendo try...catch para cada método será tedioso y el código se vuelve largo y menos legible.

throws también es útil cuando ha marcado una excepción (una excepción que debe manejarse) que no desea capturar en su método actual.


Palabra clave de lanzamiento de Java

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

Cuando se lanza una excepción, el flujo de ejecución del programa se transfiere desde el try bloquear al catch bloquear. Usamos el throw palabra clave dentro de un método.

Su sintaxis es:

throw throwableObject;

Un objeto arrojable es una instancia de la clase Throwable o subclase del Throwable clase.


Ejemplo 2:Java throw palabra clave

class Main {
  public static void divideByZero() {
    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:3)
    at Main.main(Main.java:7)
exit status 1

En este ejemplo, lanzamos explícitamente un ArithmeticException.

Nota: ArithmeticException es una excepción no comprobada. Por lo general, no es necesario manejar excepciones no verificadas.


Ejemplo 3:Lanzar una excepción verificada

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    throw new IOException("File not found");
  }

  public static void main(String[] args) {
    try {
      findFile();
      System.out.println("Rest of code in try block");
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }
  }
}

Salida

File not found

El findFile() método arroja un IOException con el mensaje que le pasamos a su constructor.

Tenga en cuenta que, dado que es una excepción verificada, debemos especificarla en el throws cláusula.

Los métodos que llaman a este findFile() el método necesita manejar esta excepción o especificarla usando throws palabra clave en sí.

Hemos manejado esta excepción en el main () método. El flujo de ejecución del programa se transfiere desde el try bloquear a catch bloquear cuando se lanza una excepción. Entonces, el resto del código en el try el bloque se salta y las declaraciones en el catch bloque se ejecutan.


Java

  1. Variables y literales de Java
  2. Entrada y salida básica de Java
  3. Expresiones, declaraciones y bloques de Java
  4. Objetos y clases de Java
  5. Clase abstracta de Java y métodos abstractos
  6. Clase interna y anidada de Java
  7. Java captura múltiples excepciones
  8. Autoboxing y unboxing de Java
  9. Método Java String replace(), replaceAll() y replaceFirst()
  10. Métodos Java String toLowercase() y toUpperCase()
  11. Java - Objeto y Clases