Saltar al contenido

Pruebe Capture en Java: un ejemplo de manejo de excepciones

¿Qué es una excepción en Java?

Excepción en Java es un evento que interfiere con la ejecución de las instrucciones del programa e interfiere con el flujo normal de ejecución del programa. Es un objeto que contiene información sobre un evento de error que ocurrió dentro de un método y se reenvía al sistema en tiempo de ejecución. En Java, las excepciones se utilizan principalmente para expresar diferentes tipos de condiciones de error.

En este tutorial, aprenderá:

Hay dos tipos de errores:

  1. Recopilación de errores de tiempo
  2. Errores en tiempo de ejecución

Los errores de tiempo de compilación se pueden clasificar en dos tipos:

Ejemplos de errores de sintaxis:

En lugar de declarar int a; lo confirmaste por error in a; por lo que el compilador comete un error.

Ejemplo: tienes una variable declarada int a; y después de varias líneas de código, declaras un número entero de nuevo como int a;. Todos estos errores se resaltan al compilar el código.

Ejemplos de errores en tiempo de ejecución

Se llama al error de tiempo de ejecución Excepciones error. Es cualquier evento que interrumpa el flujo normal de ejecución del programa.

Ejemplos de excepciones son, excepción aritmética, excepción de puntero nulo, Departamento con excepción cero, etc.

Hay excepciones en Java que no están bajo el control de los desarrolladores.

Hacer clic aquí si el video no es accesible

¿Por qué necesitamos una excepción?

Suponga que codificó un programa para acceder al servidor. Las cosas funcionaron bien mientras desarrollaba el código.

Durante la ejecución de producción real, el servidor no funciona. Cuando su programa ha intentado acceder a él, se genera una excepción.

Cómo manejar una excepción

Hasta ahora hemos visto, existe una excepción fuera del control del desarrollador. Pero culpar al error de su código por problemas ambientales no es una solución. Necesita un registro fuerte, que se encarga de casos excepcionales. Se da tal código Controlador de excepciones.

Por ejemplo, un buen identificador de excepción sería, cuando el servidor está inactivo, conectarse al servidor de respaldo.

Para hacer esto, ingrese su código para conectarse al servidor (usando condiciones tradicionales y otras).

Verificará si el servidor está inactivo. Si es así, escriba el código para conectarse al servidor de respaldo.

Organizar dicho código, usando bucles «if» y «otros» es ineficaz cuando su código tiene múltiples excepciones de Java para manejar.

class connect{
	if(Server Up){
	 // code to connect to server
	}
	else{
	 // code to connect to BACKUP server
	}
}

Prueba Catch Block

Java proporciona un manejo excepcionalmente integrado.

  1. El código estándar entra en Intentalo cuadra.
  2. El código de manejo de excepciones ingresa al CAPTURA cuadra

En nuestro ejemplo, el código se conectará al servidor en un bloque TRY. El código tendrá un bloque CATCH para conectarse al servidor de respaldo.

Si el servidor está activo, se ignorará el código del bloque CATCH. En caso de que el servidor no funcione, se genera una excepción y el código se ejecuta en el bloque de captura.

Así es como se maneja la excepción en Java.

Uso proporcional de prueba y captura

try{
    statement(s)
}
catch (exceptiontype name){
	statement(s)
}

Ejemplo

Paso 1) Copie el siguiente código en un editor

class JavaException {
   public static void main(String args[]){
      int d = 0;
      int n = 20;
      int fraction = n/d;
     System.out.println("End Of Main");
   }
}

Paso 2) Guarde el archivo y compile el código. Ejecute el programa usando el comando java, JavaException

Paso 3) Excepción aritmética: la división con cero se muestra a continuación para la línea # 5 y la línea # 6 nunca se ejecuta

Paso 4) Ahora, examinemos cómo nos ayudará tratar de manejar esta excepción. Agregaremos la excepción causada por la línea de código i intentalo bloque, y un captura cuadra. Copie el siguiente código en el editor.

class JavaException {
 public static void main(String args[]) {
  int d = 0;
  int n = 20;
  try {
   int fraction = n / d;
   System.out.println("This line will not be Executed");
  } catch (ArithmeticException e) {
   System.out.println("In the catch Block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

Paso 5) Guarde, compile y ejecute el código. Obtendrá el siguiente resultado

Como puede observar, se maneja la excepción y se ejecuta la última línea de código. Además, tenga en cuenta que la línea # 7 no se ejecutará debido a tan pronto como la excepción del flujo de los puentes controlados se eleva al bloque de captura.

Nota: El objetivo de AritmeticException “e” contiene información sobre la ocurrencia de una excepción que puede ser útil para acciones correctivas.

Jerarquía de clases de excepción de Java

Después de que se ejecuta una declaración de arresto, las otras se pasan por alto y la ejecución continúa después del bloqueo de intento / arresto. Los bloques de captura anidados siguen una jerarquía de excepciones.

Ejemplo: Para entender el anidamiento, intente capturar bloques.

Paso 1) Copie el siguiente código en un editor.

class JavaException {
 public static void main(String args[]) {
  try {
   int d = 1;
   int n = 20;
   int fraction = n / d;
   int g[] = {
    1
   };
   g[20] = 100;
  }
  /*catch(Exception e){
  	System.out.println("In the catch block due to Exception = "+e);
  }*/
  catch (ArithmeticException e) {
   System.out.println("In the catch block due to Exception = " + e);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("In the catch block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

Paso 2) Guarde el archivo y compile el código. Ejecute el programa usando la línea de comando, java JavaException.

Paso 3) Se genera la excepción ArrayIndexOutOfBoundsException. Cambie el valor de int d a 0. Guarde, compile y ejecute el código.

Paso 4) Se debe generar descubrimiento aritmético.

Paso 5) Quite el comentario de la línea # 10 a la línea # 12. Guarde, compile y ejecute el código.

Paso 6) ¿Error de compilación? Esto se debe a que ArithmeticException es la clase básica de ArithmeticException. Cualquier excepción que genere ArithmeticException también puede ser manejada por la clase Exception. Sin embargo, el bloque de detención de ArithmeticException nunca tendrá la oportunidad de ejecutarse, lo que lo hace redundante. De ahí el error de compilación.

Java finalmente bloque

Es el bloque final ejecutado independientemente de generar una excepción en el bloque de intento. es Opcional para usar con un bloqueo de intento.

 try {
  statement(s)
 } catch (ExceptiontType name) {

  statement(s)

 } finally {

  statement(s)

 }

En caso de que se genere una excepción en el bloque try, el bloque se ejecutará finalmente después de que se ejecute el bloque de captura.

Ejemplo

Paso 1) Copie el siguiente código en un editor.

class JavaException {
   public static void main(String args[]){
    try{
       int d = 0;
       int n =20;
       int fraction = n/d;
    }
  catch(ArithmeticException e){
    System.out.println("In the catch block due to Exception = "+e);
  }
  finally{
	System.out.println("Inside the finally block");
  }
}
}

Paso 2) Guarde, compile y ejecute el código.

Paso 3) Rendimiento esperado. Finalmente, se ejecuta un bloque aunque se genere una excepción.

Paso 4) Cambiar el valor de la variable d = 1. Guardar, compilar y ejecutar el código y ver la salida.

Resumen: