logo

Tipos de excepción en Java

En Java, excepción Es un evento que ocurre durante la ejecución de un programa e interrumpe el flujo normal de las instrucciones del programa. Los errores o errores que no queremos y que restringen la ejecución normal del código de nuestro programa se denominan excepciones . En esta sección nos centraremos en la tipos de excepciones en Java y las diferencias entre ambos.

Las excepciones se pueden clasificar de dos maneras:

no
  1. Excepciones integradas
    • Excepción marcada
    • Excepción no marcada
  2. Excepciones definidas por el usuario
Tipos de excepción en Java

Excepción incorporada

Excepciones que ya están disponibles en bibliotecas java se les conoce como excepción incorporada . Estas excepciones pueden definir la situación de error para que podamos comprender el motivo por el que aparece este error. Se puede clasificar en dos categorías amplias, es decir, excepciones comprobadas y excepción no marcada .

Excepción marcada

Comprobado se llaman excepciones tiempo de compilación excepciones porque el compilador verifica estas excepciones en tiempo de compilación. El compilador garantiza si el programador maneja la excepción o no. El programador debería tener que manejar la excepción; en caso contrario, el sistema ha mostrado un error de compilación.

CheckedExceptionExample.java

 import java.io.*; class CheckedExceptionExample { public static void main(String args[]) { FileInputStream file_data = null; file_data = new FileInputStream('C:/Users/ajeet/OneDrive/Desktop/Hello.txt'); int m; while(( m = file_data.read() ) != -1) { System.out.print((char)m); } file_data.close(); } } 

En el código anterior, estamos intentando leer el Hola.txt archivo y mostrar sus datos o contenido en la pantalla. El programa arroja las siguientes excepciones:

  1. El FileInputStream (nombre de archivo del archivo) constructor lanza el Excepción de archivo no encontrado esa es una excepción marcada.
  2. El leer() método de la flujo de entrada de archivos la clase lanza el IOExcepción .
  3. El cerca() El método también arroja la IOException.

Producción:

Tipos de excepción en Java

¿Cómo solucionar el error?

Básicamente existen dos formas a través de las cuales podemos solucionar estos errores.

1) Las excepciones ocurren en el método principal. Podemos deshacernos de estos errores de compilación declarando la excepción en el método principal usando los tiros Solo declaramos IOException, no FileNotFoundException, debido a la relación padre-hijo. La clase IOException es la clase principal de FileNotFoundException, por lo que esta excepción será cubierta automáticamente por IOException. Declararemos la excepción de la siguiente manera:

 class Exception{ public static void main(String args[]) throws IOException { ... ... } 

Si compilamos y ejecutamos el código, los errores desaparecerán y veremos los datos del archivo.

Tipos de excepción en Java

2) También podemos manejar estas excepciones usando trata de atraparlo Sin embargo, la forma que hemos utilizado anteriormente no es correcta. Tenemos que dar un mensaje significativo para cada tipo de excepción. Al hacerlo, sería fácil comprender el error. Usaremos el bloque try-catch de la siguiente manera:

fecha java ahora

Exception.java

 import java.io.*; class Exception{ public static void main(String args[]) { FileInputStream file_data = null; try{ file_data = new FileInputStream('C:/Users/ajeet/OneDrive/Desktop/programs/Hell.txt'); }catch(FileNotFoundException fnfe){ System.out.println('File Not Found!'); } int m; try{ while(( m = file_data.read() ) != -1) { System.out.print((char)m); } file_data.close(); }catch(IOException ioe){ System.out.println('I/O error occurred: '+ioe); } } } 

Veremos un mensaje de error adecuado. '¡Archivo no encontrado!' en la consola porque no existe dicho archivo en esa ubicación.

Tipos de excepción en Java

Excepciones no marcadas

El desenfrenado las excepciones son justo lo contrario de comprobado excepciones. El compilador no comprobará estas excepciones en el momento de la compilación. En palabras simples, si un programa arroja una excepción no verificada, e incluso si no la manejamos ni declaramos, el programa no dará un error de compilación. Generalmente ocurre cuando el usuario proporciona datos incorrectos durante la interacción con el programa.

Nota: La clase RuntimeException puede resolver todas las excepciones no marcadas debido a la relación padre-hijo.

UncheckedExceptionExample1.java

programas java
 class UncheckedExceptionExample1 { public static void main(String args[]) { int postive = 35; int zero = 0; int result = positive/zero; //Give Unchecked Exception here. System.out.println(result); } } 

En el programa anterior, hemos dividido 35 entre 0. El código se compilará correctamente, pero generará un error ArithmeticException en tiempo de ejecución. Al dividir un número por 0, se genera la excepción de división por cero, que es una excepción de desmarcación.

Producción:

Tipos de excepción en Java

UncheckedException1.java

 class UncheckedException1 { public static void main(String args[]) { int num[] ={10,20,30,40,50,60}; System.out.println(num[7]); } } 

Producción:

Tipos de excepción en Java

En el código anterior, intentamos ubicar el elemento en la posición 7, pero la longitud de la matriz es 6. El código se compila correctamente, pero arroja ArrayIndexOutOfBoundsException en tiempo de ejecución.

Excepción definida por el usuario

En Java , ya tenemos algunas clases de excepción integradas como ArrayIndexOutOfBoundsException , NullPointerException , y Excepción aritmética . Estas excepciones están restringidas a activarse en algunas condiciones predefinidas. En Java, podemos escribir nuestra propia clase de excepción extendiendo la clase Exception. Podemos lanzar nuestra propia excepción en una condición particular usando la palabra clave throw. Para crear una excepción definida por el usuario, debemos tener conocimientos básicos de el trata de atraparlo bloquear y tirar palabra clave .

escribamos un programa java y crear una excepción definida por el usuario.

UserDefinedException.java

 import java.util.*; class UserDefinedException{ public static void main(String args[]){ try{ throw new NewException(5); } catch(NewException ex){ System.out.println(ex) ; } } } class NewException extends Exception{ int x; NewException(int y) { x=y; } public String toString(){ return ('Exception value = '+x) ; } } 

Producción:

Tipos de excepción en Java

Descripción:

En el código anterior, hemos creado dos clases, es decir, Excepción definida por el usuario y Nueva excepción . El Excepción definida por el usuario tiene nuestro método principal, y el Nueva excepción class es nuestra clase de excepción definida por el usuario, que extiende excepción . En el Nueva excepción clase, creamos una variable X de tipo entero y asignarle un valor en el constructor. Después de asignar un valor a esa variable, devolvemos el mensaje de excepción.

En el Excepción definida por el usuario clase, hemos agregado un trata de atraparlo bloquear. En la sección de prueba, lanzamos la excepción, es decir, Nueva excepción y pasarle un número entero. El valor se pasará a la clase NewException y devolverá un mensaje. Captamos ese mensaje en el bloque catch y lo mostramos en la pantalla.

núcleo microlítico

Diferencia entre excepción marcada y no marcada

S.No Excepción marcada Excepción no marcada
1. Estas excepciones se verifican en tiempo de compilación. Estas excepciones también se manejan en tiempo de compilación. Estas excepciones son justo lo contrario de las excepciones marcadas. Estas excepciones no se verifican ni se manejan en tiempo de compilación.
2. Estas excepciones son subclases directas de excepción pero no se extienden desde la clase RuntimeException. Son las subclases directas de la clase RuntimeException.
3. El código genera un error de compilación en el caso de que un método genere una excepción marcada. El compilador no puede manejar la excepción por sí solo. El código se compila sin ningún error porque las excepciones escapan a la notificación del compilador. Estas excepciones son el resultado de errores creados por el usuario en la lógica de programación.
4. Estas excepciones ocurren principalmente cuando la probabilidad de falla es demasiado alta. Estas excepciones ocurren principalmente debido a errores de programación.
5. Las excepciones comprobadas comunes incluyen IOException, DataAccessException, InterruptedException, etc. Las excepciones comunes no comprobadas incluyen ArithmeticException, InvalidClassException, NullPointerException, etc.
6. Estas excepciones se propagan mediante la palabra clave throws. Estos se propagan automáticamente.
7. Es necesario proporcionar los bloques try-catch y try-finally para manejar la excepción marcada. En el caso de una excepción no marcada, no es obligatorio.

Los fallos o errores que no queremos y que restringen la ejecución normal de los programas se denominan excepciones .

ArithmeticException, ArrayIndexOutOfBoundExceptions, ClassNotFoundExceptions etc. vienen en la categoría de Excepción incorporada . A veces, las excepciones integradas no son suficientes para explicar o describir determinadas situaciones. Para describir estas situaciones, tenemos que crear nuestras propias excepciones creando una clase de excepción como una subclase del Excepción clase. Este tipo de excepciones entran en la categoría de Excepción definida por el usuario .