Breaking

Post Top Ad

Your Ad Spot

jueves, 19 de diciembre de 2019

Java lanza y lanza

En este tutorial, aprenderemos a usar la palabra clave throw and throws para el manejo de excepciones con la ayuda de ejemplos.
En Java, las excepciones se pueden clasificar en dos tipos:
  • Las excepciones sin marcar: No se comprueban en tiempo de compilación, pero al ejemplo de gestión tiempo.Para: ArithmeticExceptionNullPointerExceptionArrayIndexOutOfBoundsException, excepciones en virtud de Errorclase, etc.
  • Excepciones comprobadas: se verifican en tiempo de compilación. Por ejemplo, IOExceptionInterruptedException, etc.
Consulte las Excepciones de Java para conocer en detalle las excepciones marcadas y no marcadas.
Por lo general, no necesitamos manejar excepciones no verificadas. Es porque se producen excepciones no verificadas debido a errores de programación. Y, es una buena práctica corregirlos en lugar de manejarlos.
Este tutorial ahora se centrará en cómo manejar las excepciones marcadas usando throwthrows.

Java lanza palabra clave

Usamos la throwspalabra clave en la declaración del método para declarar el tipo de excepciones que pueden ocurrir dentro de ella.
Su sintaxis es:
  1. accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 {
  2. // code
  3. }
Como puede ver en la sintaxis anterior, podemos usar throwspara declarar múltiples excepciones.

Ejemplo 1: Java lanza palabra clave

  1. import java.io.*;
  2. class Main {
  3. public static void findFile() throws IOException {
  4. // code that may produce IOException
  5. File newFile=new File("test.txt");
  6. FileInputStream stream=new FileInputStream(newFile);
  7. }
  8. public static void main(String[] args) {
  9. try{
  10. findFile();
  11. } catch(IOException e){
  12. System.out.println(e);
  13. }
  14. }
  15. }
Salida
java.io.FileNotFoundException: test.txt (No existe tal archivo o directorio)
Cuando ejecutamos este programa, si el archivo test.txtno existe, FileInputStreamlanza un FileNotFoundExceptionque extiende la IOExceptionclase.
Si un método no maneja excepciones, el tipo de excepciones que pueden ocurrir dentro de él debe especificarse en la throwscláusula para que los métodos que se encuentren más arriba en la pila de llamadas puedan manejarlas o especificarlas usando la throwspalabra clave.
El findFile()método especifica que IOExceptionse puede lanzar un. El main()método 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 la throwspalabra clave.
  1. import java.io.*;
  2. class Main {
  3. public static void findFile() throws NullPointerException, IOException, InvalidClassException {
  4. // code that may produce NullPointerException
  5. // code that may produce IOException
  6. // code that may produce InvalidClassException
  7. }
  8. public static void main(String[] args) {
  9. try{
  10. findFile();
  11. } catch(IOException e1){
  12. System.out.println(e1.getMessage());
  13. } catch(InvalidClassException e2){
  14. System.out.println(e2.getMessage());
  15. }
  16. }
  17. }
Aquí, el findFile()método especifica que puede lanzar NullPointerExceptionIOExceptionInvalidClassExceptionen su throwscláusula.
Tenga en cuenta que no hemos manejado el NullPointerExceptionEsto se debe a que es una excepción no verificada. No es necesario especificarlo en la throwscláusula y manejarlo.

lanza la palabra clave Vs. intenta ... atrapa ... finalmente

Puede haber varios métodos que pueden causar excepciones. Escribir try...catchpara cada método será tedioso y el código se volverá largo y menos legible.
throws También es útil cuando ha marcado una excepción (una excepción que debe manejarse) que no desea detectar en su método actual.

Palabra clave de lanzamiento de Java

La throwpalabra clave se usa para lanzar explícitamente una única excepción.
Cuando se produce una excepción, el flujo de ejecución del programa se transfiere del trybloque al catchbloque. Usamos la throwpalabra clave dentro de un método.
Su sintaxis es:
  1. throw throwableObject;
Un objeto arrojable es una instancia de clase Throwableo subclase de la Throwableclase.

Ejemplo 2: palabra clave de lanzamiento de Java

  1. class Main {
  2. public static void divideByZero() {
  3. throw new ArithmeticException("Trying to divide by 0");
  4. }
  5. public static void main(String[] args) {
  6. divideByZero();
  7. }
  8. }
Salida
Excepción en el hilo "main" java.lang.ArithmeticException: Intentando dividir por 0
    en Main.divideByZero (Main.java:3)
    en Main.main (Main.java:7)
estado de salida 1
En este ejemplo, estamos arrojando explícitamente un ArithmeticException.
Nota: ArithmeticException es una excepción no marcada. Por lo general, no es necesario manejar excepciones no verificadas.

Ejemplo 3: Lanzar una excepción verificada

  1. import java.io.*;
  2. class Main {
  3. public static void findFile() throws IOException {
  4. throw new IOException("File not found");
  5. }
  6. public static void main(String[] args) {
  7. try {
  8. findFile();
  9. System.out.println("Rest of code in try block")
  10. } catch (IOException e) {
  11. System.out.println(e.getMessage());
  12. }
  13. }
  14. }
Salida
Archivo no encontrado
El findFile()método arroja un IOExceptioncon el mensaje que pasamos a su constructor.
Tenga en cuenta que, dado que es una excepción marcada, debemos especificarlo en la throwscláusula.
Los métodos que llaman a este findFile()método deben manejar esta excepción o especificarla usando la throwspalabra clave ellos mismos.
Hemos manejado esta excepción en el main()método. El flujo de la ejecución del programa se transfiere de un trybloque a otro catchcuando se produce una excepción. Por lo tanto, tryse omite el resto del código en el bloque y catchse ejecutan las declaraciones en el bloque.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas