Recomendado, 2024

La Elección Del Editor

Diferencia entre la excepción marcada y no verificada en Java

"Throwable" es la clase principal de las clases Error y Exception. La clase "RuntimeException" y sus subclases, la clase "Error" y sus clases secundarias son las "Excepciones no verificadas", mientras que las subclases restantes de la clase "Exception" excepto "RuntimeException" son las excepciones comprobadas. La diferencia básica entre la excepción marcada y no verificada es que el compilador verifica las excepciones verificadas, mientras que el compilador no marca las excepciones no verificadas.

Discutamos las otras diferencias entre las excepciones marcadas y no verificadas con la ayuda de la tabla de comparación.

Gráfica comparativa

Bases para la comparaciónExcepción comprobadaExcepción sin marcar
BASICEl compilador comprueba la excepción comprobada.El compilador no marca la excepción Unchecked.
Clase de excepciónExcepto en la clase "RuntimeException", todas las clases secundarias de la clase "Exception", y la clase "Error" y sus clases secundarias son Checked Exception.La clase "RuntimeException" y sus clases secundarias son "Excepciones no verificadas".
ManejoSi no manejamos la excepción marcada, entonces los objetos del compilador.Incluso si no manejamos la excepción sin marcar, el compilador no se opone.
CompilacionEl programa no se compila si hay una excepción marcada no controlada en el código del programa.El programa compila exitosamente incluso si hay una excepción no controlada no controlada en el código del programa.

Definición de excepción comprobada

Las excepciones comprobadas son aquellas excepciones que el compilador verifica para la ejecución sin problemas del programa. El compilador verifica si el programa puede manejar la excepción verificada o no. Si el código no puede manejar la excepción, se produce un error de compilación. Todas las subclases de la clase "Excepción", excepto la clase RuntimeException, son las excepciones comprobadas.
Estudiemos la excepción marcada con un ejemplo.

 import java.io. *; clase Ejemplo {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Este constructor FileInputStream (nombre de archivo de archivo) lanza la excepción FileNotFoundException, que es una excepción comprobada. int k; while ((k = fis.read ())! = -1) {// El método read () de la clase FileInputStream también lanza una excepción comprobada: IOException. System.out.print ((char) k); } fis.close (); // El método close () cierra la secuencia de entrada de archivos que lanza IOException. }} 

En el código anterior, intentamos abrir, leer y mostrar el contenido de los archivos. Puede suceder que el archivo no esté presente, luego ocurrirá la excepción FileNotFoundException, que es una excepción comprobada. Si la excepción marcada no se maneja, el compilador no permitirá que el programa se compile sin problemas. Se mostrará error de tiempo de compilación. Por lo tanto, para una compilación sin problemas, la excepción comprobada debe ser capturada o declarada como lanzada.

Definición de excepción no verificada

Las excepciones no marcadas son aquellas excepciones que no son verificadas por el compilador. El compilador compila el programa exitosamente incluso si las excepciones no son manejadas por el código. La clase "Error" y sus clases secundarias, la clase "Tiempo de ejecución" y sus subclases son las excepciones no verificadas.

Veamos un ejemplo de una excepción sin marcar.

 clase Ejemplo {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (arr [7]); // ArrayIndexOutOfBoundsException. }} 

En el código anterior, puede ver que hay una ArrayIndexOutOfBoundsException, ya que estoy intentando acceder al elemento que no existe. Como se trata de una excepción no comprobada, no se producirá un error de tiempo de compilación y el archivo se compilará sin ningún error. Pero el programa no se ejecutará hasta que se maneje la excepción. Por lo tanto, para una ejecución sin problemas, las excepciones deben ser capturadas o declaradas para ser lanzadas

Diferencias clave entre la excepción marcada y no verificada

  1. Las excepciones marcadas están en el conocimiento del compilador, mientras que las excepciones no verificadas no están en el compilador.
  2. Excepto la clase RuntimeException y Error, todas las clases son excepciones verificadas. Por otro lado, las clases RuntimeException y Error son excepciones sin marcar.
  3. Si las excepciones marcadas no son manejadas por el código, entonces el compilador se opone. Por otro lado, si no manejamos excepciones no verificadas en el código, el compilador no se opone.
  4. Si ocurren excepciones marcadas en el código, el código no se compilará mientras que, incluso si las excepciones no controladas no son manejadas por el código, el compilador aún compila el código.

Nota :

La excepción marcada o no activada ocurre obligatoriamente durante el tiempo de ejecución. El compilador solo los activa o desactiva durante el tiempo de compilación.

Conclusión:

Las excepciones marcadas y no verificadas deben manejarse para ejecutar el programa sin problemas.

Top