Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Blocs Catch Multiples | Section
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Gestion des Exceptions en Java

bookBlocs Catch Multiples

Glissez pour afficher le menu

Lors de la gestion des exceptions en Java, il est souvent nécessaire de traiter différents types d’erreurs pouvant survenir dans votre code. Les blocs catch multiples permettent de répondre séparément à divers types d’exceptions au sein d’une seule structure try-catch. En plaçant plusieurs blocs catch après un bloc try, il est possible de spécifier une logique de traitement unique pour chaque classe d’exception. Cette approche rend le code plus robuste, car elle permet de traiter différemment des problèmes spécifiques tels que les erreurs de saisie, les erreurs arithmétiques ou les références nulles, selon la situation.

try {
    // code
} catch (Exception1) {
    // exception handling 1
} catch (Exception2) {
    // exception handling 2
}

L’ordre des blocs catch est essentiel, car Java vérifie chaque bloc catch dans l’ordre, de haut en bas, pour trouver un type d’exception correspondant.

Puisque les exceptions sont organisées selon une hiérarchie, un bloc catch pour une exception super-classe (comme Exception) doit toujours apparaître après les blocs catch de ses sous-classes (telles que NullPointerException ou ArithmeticException).

Si un bloc catch de super-classe apparaît avant ses sous-classes, le compilateur générera une erreur, car les blocs catch des sous-classes deviendraient inaccessibles. Comprendre cette hiérarchie garantit que le programme gère les exceptions de la manière la plus précise possible.

Main.java

Main.java

copy
12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { try { int[] numbers = {1, 2, 3}; System.out.println("Result: " + (10 / numbers[3])); } catch (ArithmeticException e) { System.out.println("ArithmeticException caught: " + e.getMessage()); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("ArrayIndexOutOfBoundsException caught: " + e.getMessage()); } catch (Exception e) { System.out.println("General Exception caught: " + e.getMessage()); } } }

Dans le programme ci-dessus, le bloc try tente de diviser 10 par la valeur à l’indice 3 du tableau numbers. Cependant, comme le tableau ne contient que trois éléments (indices 0, 1 et 2), l’accès à numbers[3] déclenchera une ArrayIndexOutOfBoundsException.

Lorsqu’une exception se produit, Java vérifie chaque bloc catch dans l’ordre. Il recherche d’abord une ArithmeticException, puis une ArrayIndexOutOfBoundsException, et enfin une exception générale Exception. Comme l’exception levée correspond à ArrayIndexOutOfBoundsException, seul ce bloc catch s’exécute et les autres sont ignorés. Cela montre comment Java choisit le bloc catch le plus spécifique correspondant, garantissant ainsi que l’exception est traitée de manière appropriée.

question mark

Pourquoi l’ordre des blocs catch est-il important lors du traitement des exceptions en Java ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 1. Chapitre 5
some-alt