Pruebe Catch en Java:ejemplo de manejo de excepciones
¿Qué es una excepción en Java?
Excepción en Java es un evento que interrumpe la ejecución de las instrucciones del programa y perturba 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 tiempo de ejecución. En Java, las excepciones se utilizan principalmente para indicar diferentes tipos de condiciones de error.
En este tutorial, aprenderá-
- ¿Qué es una excepción?
- ¿Por qué necesitamos una excepción?
- Cómo manejar la excepción
- Pruebe el bloqueo de captura
- Jerarquía de clases de excepción de Java
- Java finalmente bloquea
Hay dos tipos de errores:
- Errores de tiempo de compilación
- Errores de tiempo de ejecución
Los errores de tiempo de compilación se pueden volver a clasificar 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 el cual el compilador arrojará un error.
Ejemplo:Ha declarado una variable int a;
y después de algunas líneas de código, vuelve a declarar un número entero como int a;
. Todos estos errores se resaltan cuando compilas el código.
Ejemplo de errores de tiempo de ejecución
Un error de tiempo de ejecución se llama Excepciones error. Es cualquier evento que interrumpe el flujo normal de ejecución del programa.
Ejemplos de excepciones son la excepción aritmética, la excepción Nullpointer, la excepción Dividir por cero, etc.
Las excepciones en Java son algo que está fuera del control de los desarrolladores.
Haga clic aquí si no se puede acceder al video
¿Por qué necesitamos Excepción?
Suponga que ha codificado un programa para acceder al servidor. Las cosas funcionaron bien mientras desarrollabas el código.
Durante la ejecución de producción real, el servidor está inactivo. Cuando su programa intentó acceder a él, se generó una excepción.
Cómo manejar la excepción
Hasta ahora hemos visto, la excepción está fuera del control del desarrollador. Pero culpar de la falla de su código a problemas ambientales no es una solución. Necesitas una Programación Robusta, que se encargue de situaciones excepcionales. Dicho código se conoce como Controlador de excepciones.
En nuestro ejemplo, un buen manejo de excepciones sería, cuando el servidor está inactivo, conectarse al servidor de respaldo.
Para implementar esto, ingrese su código para conectarse al servidor (Usando las condiciones tradicionales if y else).
Comprobará si el servidor está caído. En caso afirmativo, escriba el código para conectarse al servidor de respaldo.
Tal organización de código, usando bucles "if" y "else" no es efectiva cuando su código tiene múltiples excepciones java para manejar.
class connect{ if(Server Up){ // code to connect to server } else{ // code to connect to BACKUP server } }
Intentar atrapar bloque
Java proporciona un manejo excepcional incorporado.
- El código normal entra en TRY bloque.
- El código de manejo de excepciones entra en CATCH bloquear
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 en el bloque CATCH. En caso de que el servidor esté inactivo, se genera una excepción y se ejecutará el código en el bloque catch.
Entonces, 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) 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) 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 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 intentar bloque, seguido de un capturar bloquear. 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 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 n.° 7 no se ejecutará porque tan pronto como se genera una excepción, el flujo de control salta al bloque catch.
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.
- Todas las clases de excepción en Java amplían la clase 'Throwable'. Throwable tiene dos subclases, Error y Exception
- 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 puede recuperarse de esta excepción usando el bloque try and catch
- Una excepción de 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 el tiempo de ejecución y que no se puede rastrear en el tiempo de compilación. Un excelente ejemplo de lo mismo es dividir por excepción de cero, o excepción de puntero nulo, etc.
- Se genera una excepción de E/S durante las operaciones de entrada y salida
- Las excepciones interrumpidas en Java se generan durante varios subprocesos.
Ejemplo: Para comprender la anidación de bloques Try and Catch
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 el comando, java JavaException .
Paso 3) Se genera una 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) Quite el comentario de 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 que genere ArithmeticException también puede ser manejada por la clase Exception. Por lo tanto, 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 bloquea
El bloque finalmente se ejecuta independientemente de que se genere 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 de prueba, el bloque finalmente se ejecuta después de ejecutar 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, el bloque se ejecuta a pesar de que se genera 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 :
- Una Excepción es un error en tiempo de ejecución 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 de tiempo de compilación:errores de sintaxis, errores semánticos
- Errores de tiempo de ejecución:excepción
- 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.
- Probar bloqueo :El código normal va en este bloque.
- Bloque de captura :Si hay un error en el código normal, irá a este bloque
Java
- Manejo de excepciones de Python Uso de la instrucción try, except y finalmente
- Manejo de excepciones de Java
- Prueba de Java ... captura
- Java captura múltiples excepciones
- Manejo de excepciones de C++:ejemplo Try, Catch, throw
- Método Java String charAt() con ejemplo
- Java String termina con () método con ejemplo
- Java BufferedReader:cómo leer un archivo en Java con un ejemplo
- Algoritmo de ordenación por inserción en Java con ejemplo de programa
- Manejo de excepciones de Python:probar, atrapar, finalmente y aumentar [Ejemplo]
- Java 9 - Prueba con la mejora de los recursos