La excepción es que el evento ocurre cuando el programa se está ejecutando. Debido a esta excepción, el flujo normal del programa sufrirá interrupciones. Cada vez que ocurre una excepción en el método, el método crea un objeto y lo envía al sistema de tiempo de ejecución. Por ejemplo, el archivo que debe abrirse no se encuentra, la excepción de clase no encontrada, la excepción aritmética, la excepción de SQL, etc.
Para manejar estas excepciones, existen 4 técnicas estándar:
- Trata de atraparlo
- Lanzar
- Lanza
- Uso de la interfaz HandlerExceptionResolver (solo en Spring-framework)
El uso de captura se describe a continuación:
Sintaxis:
try { // Put the code in the try block which may occur any // kind of exception } catch (ExceptionName e) { // handle the exception }
Hay dos ejemplos discutidos a continuación:
- Uso de clase de excepción predefinida
- Uso de la definición de clase de excepción propia
Ejemplo 1: uso de catch con una clase de excepción predefinida
Este es un ejemplo de una excepción predefinida que es manejada por el bloque try and catch.
Java
// Importing Classes/Files import java.io.*; import java.util.*; // Importing Scanner Class for user input import java.util.Scanner; class GFG { // Main driver method public static void main(String[] args) { // Taking input from user Scanner input = new Scanner(System.in); // Taking input of first number System.out.println("Enter the first number"); Integer number1 = input.nextInt(); // Taking input of second number System.out.println("Enter the second number"); Integer number2 = input.nextInt(); // Considering values in order to show execution // number1 = 30; number2 = 10; try { // Dividing both the numbers int result = number1 / number2; // If number2 = 0, method will create the object // of ArithmeticException class and throw it System.out.println("Result is " + result); // Printing the result } // If there is any exception in the try block // then catch will handle the exception catch (ArithmeticException e) { // Message printed after catching the exception System.out.println("Dividing by zero"); } } }
Producción:
Ejemplo 2: uso de catch al definir la clase de excepción
En este ejemplo, la excepción está definida por el usuario en la que la clase de excepción se escribe de la siguiente manera:
Java
// Java Program to Use catch to handle the exception // Importing generic Classes/Files import java.io.*; import java.util.*; class GFG { // Main driver method public static void main(String[] args) { // Taking input from keyboard/user Scanner input = new Scanner(System.in); // Enter any name System.out.println("Enter the name"); String name = input.next(); try { // Enter age System.out.println("Enter the age"); // Using nextInt function to read integer Integer age = input.nextInt(); if (age <= 18) { MyException me = new MyException(); throw me; // If age is less then equal to 18 then the // object of MyException class will be throw // here } else // If age is greater then 18 i.e no exception is // there then try block will execute { System.out.println("name:" + name); System.out.println("age:" + age); } } catch (MyException e) // If the exception will occur then the object that // throw in the try block will be copied in to this // object { System.out.println(e); } } } // User defined MyException class class MyException extends RuntimeException { public String toString() { // toString method will get Override here return "Age must be greater then 18"; } }
Input 1: Enter the name : Geek Enter the age: 18 Output: Age must be greater then 18 // Age is equal to 18 so the exception is occurred Input 2: Enter the name : Geek Enter the age: 20 Output: name: Geek age:20 // Age is greater then 18 so no exception.