Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

Mot-clé catch en Java

Le mot-clé catch en Java est utilisé dans la gestion des exceptions pour attraper les exceptions qui pourraient être lancées dans un bloc try. Il permet au programmeur de gérer les erreurs avec élégance sans faire échouer le programme. Le bloc catch suit un bloc try et contient du code pour gérer le type d'exception spécifié.

Utilisation

Le bloc catch est utilisé pour gérer les exceptions qui peuvent survenir dans le bloc try. Il permet de répondre à différents types d'exceptions de manière contrôlée.

Syntax

try {
    // Code that might throw an exception
} catch (ExceptionType e) {
    // Code to handle the exception
}
  • ExceptionType: Le type d'exception à attraper (par exemple, IOException, NullPointerException).
  • e: L'objet d'exception qui contient des informations sur l'erreur.

Exemples

Exemple 1 : Traitement de base des exceptions

public class CatchExample {
    public static void main(String[] args) {
        try {
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[3]);  // This will throw ArrayIndexOutOfBoundsException
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Array index is out of bounds!");
        }
    }
}

Dans cet exemple, le bloc try contient du code qui peut lancer un ArrayIndexOutOfBoundsException. Le bloc catch capture cette exception et imprime un message sur la console.

Exemple 2 : Blocs de capture multiples

public class MultipleCatchExample {
    public static void main(String[] args) {
        try {
            int a = 30, b = 0;
            int result = a / b;  // This will throw ArithmeticException
        } catch (ArithmeticException e) {
            System.out.println("Cannot divide by zero!");
        } catch (Exception e) {
            System.out.println("An error occurred: " + e.getMessage());
        }
    }
}

Cet exemple démontre l'utilisation de plusieurs blocs catch pour gérer différents types d'exceptions. Le bloc try contient du code qui peut déclencher un ArithmeticException. Si un ArithmeticException se produit, le premier bloc catch le traite. Si une autre exception se produit, le deuxième bloc catch s'en charge.

Exemple 3 : Attraper plusieurs exceptions dans un seul bloc

public class MultiCatchExample {
    public static void main(String[] args) {
        try {
            String text = null;
            System.out.println(text.length());  // This will throw NullPointerException
        } catch (NullPointerException | ArithmeticException e) {
            System.out.println("An error occurred: " + e.getMessage());
        }
    }
}

Dans cet exemple, un seul bloc catch est utilisé pour gérer plusieurs types d'exceptions (NullPointerException et ArithmeticException). Il s'agit d'une manière concise de gérer plusieurs exceptions qui requièrent la même logique de traitement.

Conseils et bonnes pratiques

  • Les exceptions spécifiques d'abord: Il faut toujours attraper les exceptions plus spécifiques avant d'attraper les exceptions plus générales (par exemple, IOException avant Exception).
  • Exceptions au journal: Envisagez d'enregistrer les exceptions pour faciliter le débogage et le cursus des erreurs.
    catch (IOException e) {
        Logger.getLogger(MyClass.class.getName()).log(Level.SEVERE, null, e);
    }
  • Évitez les blocs de capture vides: Ne laissez pas les blocs de capture vides. Au minimum, enregistrez l'exception ou imprimez un message.
    catch (Exception e) {
        e.printStackTrace();  // Print stack trace for debugging
    }
  • Utilisez enfin le bloc: Si vous devez exécuter du code indépendamment de l'apparition d'une exception, utilisez le bloc finally.
    try {
        // Code that might throw an exception
    } catch (Exception e) {
        // Handle the exception
    } finally {
        // Code to execute regardless of an exception
    }
  • Propagation des exceptions: Si une méthode ne peut pas gérer une exception, envisagez de la propager à l'appelant en utilisant le mot-clé throws.
    public void readFile() throws IOException {
        // Code that might throw IOException
    

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement