0% ont trouvé ce document utile (0 vote)
4 vues2 pages

04 Java Exceptions

Le document traite de la gestion des exceptions en Java, incluant la hiérarchie des exceptions, l'utilisation des blocs try-catch-finally, et les exceptions personnalisées. Il explique également les bonnes pratiques à suivre lors de la gestion des exceptions, comme ne pas attraper des exceptions non gérables et préférer des exceptions spécifiques. Enfin, il présente le mécanisme try-with-resources pour la gestion automatique des ressources.

Transféré par

bouhouchsofia3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues2 pages

04 Java Exceptions

Le document traite de la gestion des exceptions en Java, incluant la hiérarchie des exceptions, l'utilisation des blocs try-catch-finally, et les exceptions personnalisées. Il explique également les bonnes pratiques à suivre lors de la gestion des exceptions, comme ne pas attraper des exceptions non gérables et préférer des exceptions spécifiques. Enfin, il présente le mécanisme try-with-resources pour la gestion automatique des ressources.

Transféré par

bouhouchsofia3
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Note #4 — Java

Gestion des Exceptions


try-catch-finally, exceptions personnalisées, bonnes pratiques

1. Hiérarchie
Throwable
/ \
Error Exception
(JVM grave) / \
RuntimeException IOException (Checked)
(Unchecked) SQLException (Checked)
NullPointerException
ArrayIndexOutOfBoundsException
ArithmeticException
• Error : problèmes graves de la JVM — ne pas attraper
• Checked : doivent être déclarées (throws) ou traitées (try-catch)
• Unchecked / RuntimeException : erreurs de programmation, non obligatoires à déclarer

2. try-catch-finally
try {
int[] tab = new int[3];
tab[5] = 10; // ArrayIndexOutOfBoundsException
int r = 10 / 0; // ArithmeticException
} catch (ArrayIndexOutOfBoundsException e) {
[Link]("Indice invalide : " + [Link]());
} catch (ArithmeticException e) {
[Link]("Division par zéro !");
} catch (Exception e) { // filet de sécurité
[Link]();
} finally {
[Link]("Toujours exécuté — nettoyage.");
}
■ Le bloc finally s'exécute même en cas de return ou d'exception non attrapée.

3. try-with-resources (Java 7+)


Les objets implémentant AutoCloseable sont automatiquement fermés à la fin du bloc.
try (BufferedReader br = new BufferedReader(new FileReader("[Link]"))) {
String ligne;
while ((ligne = [Link]()) != null) {
[Link](ligne);
}
} catch (IOException e) {
[Link]("Erreur : " + [Link]());
}
// [Link]() appelé automatiquement
4. throw & throws
public class Banque {
private double solde;

public void retirer(double montant) throws IllegalArgumentException {


if (montant <= 0)
throw new IllegalArgumentException("Montant doit être positif");
if (montant > solde)
throw new IllegalStateException("Solde insuffisant");
solde -= montant;
}
}

5. Exceptions personnalisées
// Exception métier checked
public class SoldeInsuffisantException extends Exception {
private final double manque;

public SoldeInsuffisantException(double manque) {


super("Solde insuffisant. Manque : " + manque + " EUR");
[Link] = manque;
}
public double getManque() { return manque; }
}

// Utilisation
try {
[Link](500);
} catch (SoldeInsuffisantException e) {
[Link]([Link]());
[Link]("Manque : " + [Link]() + " EUR");
}

6. Bonnes pratiques
• N'attrapez que les exceptions que vous pouvez gérer réellement.
• Ne laissez jamais un catch vide — loggez au minimum l'erreur.
• Préférez les exceptions spécifiques aux génériques (Exception).
• Créez des exceptions métier pour les erreurs fonctionnelles.
• Évitez les exceptions pour contrôler le flux normal d'exécution.
• Documentez avec @throws dans les Javadoc.

Vous aimerez peut-être aussi