in

Excepciones marcadas vs no marcadas en Java

gfg 200x200 min

En Java, hay dos tipos de excepciones:

1) Comprobado: son las excepciones que se comprueban en tiempo de compilación. Si algún código dentro de un método arroja una excepción marcada, entonces el método debe manejar la excepción o debe especificar la excepción usando lanza palabra clave.

Por ejemplo, considere el siguiente programa Java que abre el archivo en la ubicación «C: test a.txt» e imprime las primeras tres líneas. El programa no se compila, porque la función main () usa FileReader () y FileReader () arroja una excepción marcada FileNotFoundException. También usa los métodos readLine () y close (), y estos métodos también arrojan una excepción marcada IOException

import java.io.*;

 

class Main {

    public static void main(String[] args) {

        FileReader file = new FileReader("C:\test\a.txt");

        BufferedReader fileInput = new BufferedReader(file);

         

        

        for (int counter = 0; counter < 3; counter++) 

            System.out.println(fileInput.readLine());

         

        fileInput.close();

    }

}

Producción:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - 
unreported exception java.io.FileNotFoundException; must be caught or declared to be 
thrown
    at Main.main(Main.java:5)

Para arreglar el programa anterior, necesitamos especificar la lista de excepciones usando throws, o necesitamos usar el bloque try-catch. Hemos utilizado lanzamientos en el programa siguiente. Ya que FileNotFoundException es una subclase de IOException, podemos especificar IOException en la lista de lanzamientos y hacer que el programa anterior esté libre de errores en el compilador.

import java.io.*;

 

class Main {

    public static void main(String[] args) throws IOException {

        FileReader file = new FileReader("C:\test\a.txt");

        BufferedReader fileInput = new BufferedReader(file);

         

        

        for (int counter = 0; counter < 3; counter++) 

            System.out.println(fileInput.readLine());

         

        fileInput.close();

    }

}

Resultado: primeras tres líneas del archivo «C: test a.txt»

2) Desmarcado son las excepciones que no se comprueban en el momento de la compilación. En C ++, todas las excepciones están desmarcadas, por lo que el compilador no lo obliga a manejar o especificar la excepción. Depende de los programadores ser civilizados y especificar o detectar las excepciones.
En las excepciones de Java en Error y Excepción en tiempo de ejecución las clases son excepciones sin marcar, todo lo demás bajo arrojable está marcado.

                   +-----------+
           | Throwable |
                   +-----------+
                    /         
           /           
          +-------+          +-----------+
          | Error |          | Exception |
          +-------+          +-----------+
       /  |             / |        
         ________/      ______/         
                            +------------------+
    unchecked     checked    | RuntimeException |
                    +------------------+
                      /   |    |      
                     _________________/
                       
                       unchecked

Considere el siguiente programa Java. Se compila bien, pero arroja ArithmeticException cuando se ejecuta. El compilador le permite compilar, porque ArithmeticException es una excepción sin marcar.

class Main {

   public static void main(String args[]) {

      int x = 0;

      int y = 10;

      int z = y/x;

  }

}

Producción:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Main.main(Main.java:5)
Java Result: 1

¿Por qué dos tipos?
Ver Excepciones no controladas: la controversia para detalles.

¿Debemos marcar o desmarcar nuestras excepciones?
A continuación se muestra la línea de fondo de Documentos Java
Si es razonable esperar que un cliente se recupere de una excepción, conviértala en una excepción marcada. Si un cliente no puede hacer nada para recuperarse de la excepción, conviértalo en una excepción sin marcar

Rincón de Java en GeeksforGeeks

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención lector! No dejes de aprender ahora. Hazte con todo lo importante Fundación Java y conceptos de colecciones con el Curso de Fundamentos de Java y Colecciones de Java a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

java – ¿Qué significa el error «No se puede encontrar el símbolo» o «No se puede resolver el símbolo»?

edit

Inmigración vs migración: diferencia y comparación