Pruebe Catch en Java: ejemplo de manejo de excepciones

¿Qué es la excepción en Java?

Excepción en Java es un evento que interrumpe la ejecución de las instrucciones del programa y altera el flujo normal de ejecución del programa. Es un objeto que envuelve la información de un evento de error que ocurrió dentro de un método y se pasa al sistema de ejecución. En Java, las excepciones se utilizan principalmente para indicar diferentes tipos de condiciones de error.

En este tutorial, aprenderá-

Hay dos tipos de errores:

  1. Errores de tiempo de compilación
  2. Errores de tiempo de ejecución

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

  • Errores de sintaxis
  • Errores semánticos

Ejemplo de errores de sintaxis:

En lugar de declarar int a; lo declaraste por error como in a; para qué compilador arrojará un error.

Ejemplo: has declarado una variable int a; y después de algunas líneas de código vuelves a declarar un número entero como int a;. Todos estos errores se resaltan al compilar el código.

Ejemplo de errores de tiempo de ejecución

Un error de tiempo de ejecución se denomina Excepciones error. Es cualquier evento que interrumpa el flujo normal de ejecución del programa.

Ejemplos de excepciones son la excepción aritmética, la excepción de puntero nulo, la excepción de división por cero, etc.

Excepciones en Java son algo que está fuera del control de los desarrolladores.

Haga clic aquí si el video no es accesible

¿Por qué necesitamos una excepción?

Supongamos que ha codificado un programa para acceder al servidor. Todo funcionó bien mientras desarrollabas el código.

Manejo de excepciones de Java

Durante la ejecución de producción real, el servidor está inactivo. Cuando su programa intentó acceder a él, se genera una excepción.

Manejo de excepciones de Java

Cómo manejar la excepción

Hasta ahora hemos visto que la excepción está fuera del control del desarrollador. Pero culpar del fallo de su código a cuestiones medioambientales no es una solución. Necesitas una Programación Robusta, que se haga cargo de situaciones excepcionales. Dicho código se conoce como Manejador de excepciones.

En nuestro ejemplo, un buen manejo de excepciones sería, cuando el servidor esté inactivo, conectarse al servidor de respaldo.

Manejo de excepciones de Java

Para implementar esto, ingrese su código para conectarse al servidor (usando el tradicional condiciones si y si no).

Verificarás si el servidor está caído. En caso afirmativo, escriba el código para conectarse al servidor de respaldo.

Dicha organización del código, utilizando los bucles "if" y "else", no es efectiva cuando su código tiene múltiples excepciones java manejar.

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

Prueba el bloque de captura

Java proporciona un manejo excepcional incorporado.

  1. El código normal entra en un Prueba bloquear.
  2. El código de manejo de excepciones va al CAPTURAS bloquear

Prueba el bloque de captura

En nuestro ejemplo, el bloque TRY contendrá el código para conectarse al servidor. El bloque CATCH contendrá el código para conectarse al servidor de respaldo.

En caso de que 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 se ejecutará el código del bloque catch.

Prueba el bloque de captura

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

Sintaxis para usar try & catch

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

Ejemplo

Paso 1) copia el siguientewing 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) Una excepción aritmética: la división por cero se muestra a continuación para la línea n.° 5 y la línea n.° 6 nunca se ejecuta

Paso 4) Ahora veamos y examinemos cómo try and catch nos ayudará a manejar esta excepción. Pondremos la excepción que causa la línea de código en un try bloque, seguido de un coger bloquear. copia el siguientewing 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 siguientewing salida

Prueba el bloque de captura

Como observa, se maneja la excepción y también se ejecuta la última línea de código. Además, tenga en cuenta que la línea 7 no se ejecutará porque Tan pronto como se genera una excepción, el flujo de control salta al bloque catch.

Nota: El objeto AritmeticException “e” contiene información sobre la excepción que se ha producido y que puede ser útil para tomar acciones de recuperación.

Jerarquía de clases de excepción de Java

Después de que se ejecuta una instrucción catch, las demás se omiten y la ejecución continúa después del bloque try/catch. Los bloques catch anidados siguen la jerarquía de excepciones.


Jerarquía de excepciones de Java

  • Todas las clases de excepción en Java amplían la clase "Throwable". Throwable tiene dos subclases, Error y Excepción.
  • La clase Error define la excepción o los problemas que nuestro programa no espera que ocurran en circunstancias normales, por ejemplo, error de memoria, error de hardware, error de JVM, etc.
  • La clase Exception representa las excepciones que puede manejar nuestro programa, y ​​nuestro programa se puede recuperar de esta excepción usando el bloque try y catch.
  • Una excepción en tiempo de ejecución es una subclase de la clase de excepción. La excepción de este tipo representa una excepción que ocurre en tiempo de ejecución y que no se puede rastrear en tiempo de compilación. Un excelente ejemplo de lo mismo es la excepción de división por cero o excepción de puntero nulo, etc.
  • Se genera una excepción de IO durante las operaciones de entrada y salida
  • Las excepciones interrumpidas en Java se generan durante múltiples subprocesos.

Ejemplo: Comprender el anidamiento de bloques try and catch.

Paso 1) copia el siguientewing 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 el comando, javaExcepción Java.

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

Paso 4) Se debe generar una ArithmeticException.

Paso 5) Descomente la línea n.° 10 a la línea n.° 12. Guarde, compile y ejecute el código.

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

Java finalmente bloque

El bloque final es ejecutado independientemente de que se plantee una excepción en el bloque de prueba. Es opcional para usar con un bloque de prueba.

 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 finalmente se ejecuta después de ejecutar el bloque catch.

Ejemplo

Paso 1) copia el siguientewing 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, el bloque se ejecuta aunque se genere una excepción.

Paso 4) Cambie el valor de la variable d = 1. Guarde, compile y ejecute el código y observe el resultado. Parte inferior del formulario

Resumen:

  • An La excepción es un error de tiempo de ejecución. lo que interrumpe el flujo normal de ejecución del programa. La interrupción durante la ejecución del programa se denomina error o excepción.
  • Los errores se clasifican en dos categorías.
    • Errores en tiempo de compilación: errores de sintaxis, errores semánticos
    • Errores de tiempo de ejecución: excepción
  • A Un programa robusto debe manejar todas las excepciones. y continuar con su flujo normal de ejecución del programa. Java proporciona un método de manejo excepcional incorporado
  • El controlador de excepciones es un conjunto de código que maneja una excepción. Las excepciones se pueden manejar en Java usando try & catch.
  • Intenta bloquear: El código normal va en este bloque.
  • Bloque de captura: Si hay un error en el código normal, irá a este bloque