Attraper plusieurs exceptions en Java

Rupam Yadav 12 octobre 2023
  1. Attraper plusieurs exceptions à l’aide de plusieurs instructions Catch en Java
  2. Attrapez plusieurs exceptions en utilisant instanceOf en Java
  3. Attrapez plusieurs exceptions dans un bloc de capture en utilisant | en Java
Attraper plusieurs exceptions en Java

Aujourd’hui, nous allons examiner les façons dont nous pouvons utiliser et intercepter plusieurs exceptions en Java. Une exception dans Java se produit lorsqu’un événement indésirable se produit pendant l’exécution. La façon la plus courante de voir une exception consiste à utiliser les mots-clés try-catch. Ici, le try contient le bloc de code à vérifier, et le catch a le code à afficher lorsqu’une exception se produit.

Nous allons vérifier les trois méthodes pour utiliser plusieurs exceptions dans une seule capture avec les exemples suivants.

Attraper plusieurs exceptions à l’aide de plusieurs instructions Catch en Java

Dans l’exemple, nous prenons les deux entrées de type int de l’utilisateur, puis les divisons pour afficher le résultat. Notez que nous avons enfermé ce code dans un bloc try ; cela signifie qu’il doit aussi avoir un bloc catch.

Plusieurs exceptions peuvent être levées comme InputMismatchException lorsque la valeur saisie n’est pas de type int et ArithmeticException lorsque num2 obtient la valeur zéro car aucun nombre n’est divisé par zéro. Nous pouvons lancer une Exception qui est le parent de toutes les autres exceptions.

Pour les intercepter tous, nous écrivons trois blocs catch différents avec leurs types d’exception et imprimons le message pour montrer quand cette exception se produit. La sortie montre les différents résultats lorsqu’il n’y a pas d’exception et lorsqu’il y a des exceptions.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (InputMismatchException e1) {
      System.out.println("Error! - Please enter a number.");
    } catch (ArithmeticException e2) {
      System.out.println("Error! - You cannot divide any number with 0");
    } catch (Exception e3) {
      System.out.println("An error occurred please try again!");
    }
  }
}

Sortie 1 :

Enter two numbers : num1 : 10 num2 : 2 After division result : 5

Sortie 2 :

Enter two numbers : num1 : 50 num2 : hhh Error !-Please enter a number.

Sortie 3 :

Enter two numbers : num1 : 10 num2 : 0 Error !-You cannot divide any number with 0

Attrapez plusieurs exceptions en utilisant instanceOf en Java

Une autre méthode que vous pouvez utiliser consiste à utiliser la fonction instanceOf, qui vérifie si un objet est du type donné ou non ; il renvoie une valeur booléenne. Nous utilisons le même exemple que ci-dessus, mais ici nous utilisons un seul bloc catch avec plusieurs instructions if.

Comme indiqué ci-dessus, l’Exception est la classe parente des exceptions les plus courantes. Nous pouvons utiliser son objet pour vérifier si l’exception levée est du type donné. Ici, nous passons en revue les deux exceptions : InputMismatchException et ArithmeticException.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (Exception e) {
      if (e instanceof InputMismatchException) {
        System.out.println("Error! - Please enter a number.");
      } else if (e instanceof ArithmeticException) {
        System.out.println("Error! - You cannot divide any number with 0");
      } else {
        System.out.println("An error occurred please try again!");
      }
    }
  }
}

Production:

Enter two numbers: 
num1: 
d
Error! - Please enter a number.

Attrapez plusieurs exceptions dans un bloc de capture en utilisant | en Java

Dans Java 7 et versions ultérieures, nous pouvons utiliser le symbole pipe ou OR au niveau du bit pour écrire plusieurs exceptions dans un seul catch. Dans l’exemple, nous divisons les deux nombres entrés, puis vérifions si l’une des deux exceptions est vraie. Si c’est vrai, le message d’erreur sera imprimé.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (InputMismatchException | ArithmeticException e) {
      System.out.println("An error occurred please try again");
    }
  }
}

Production:

Enter two numbers: 
num1: 
f
An error occurred please try again
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java Exception