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

Chap8 Java

Le chapitre 8 aborde l'organisation du code en Java à travers les packages, ainsi que la gestion des exceptions et des erreurs. Il explique la hiérarchie des erreurs, la différence entre exceptions vérifiées et non vérifiées, et comment utiliser les blocs try-catch pour gérer les exceptions. De plus, il présente comment lancer et déléguer des exceptions, ainsi que la création d'exceptions personnalisées pour des scénarios spécifiques.

Transféré par

karel Towanou
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 vues4 pages

Chap8 Java

Le chapitre 8 aborde l'organisation du code en Java à travers les packages, ainsi que la gestion des exceptions et des erreurs. Il explique la hiérarchie des erreurs, la différence entre exceptions vérifiées et non vérifiées, et comment utiliser les blocs try-catch pour gérer les exceptions. De plus, il présente comment lancer et déléguer des exceptions, ainsi que la création d'exceptions personnalisées pour des scénarios spécifiques.

Transféré par

karel Towanou
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

DR ZOTCHI GIOVANI – CHAP8 JAVA – [Link].

FR

Chapitre 8 : Packages, Exceptions et Gestion des Erreurs.

Jusqu'à présent, nous avons écrit du code en supposant que tout se passerait bien. Mais dans le
monde réel, les fichiers manquent, les utilisateurs saisissent du texte au lieu de nombres, et les
connexions réseau lâchent. Ce chapitre vous apprend à organiser votre code et, surtout, à
empêcher votre programme de "planter" lamentablement face aux imprévus.

Chapitre 8 : Packages, Exceptions et Gestion des Erreurs


8.1 Les Packages : Organiser et structurer son code
Imaginez votre ordinateur sans aucun dossier, avec tous vos fichiers en vrac sur le bureau. Ce
serait le chaos. En Java, c'est la même chose : on utilise des packages pour ranger nos classes
dans des "dossiers" logiques.

8.1.1 Le mot-clé package

La toute première ligne d'un fichier .java (avant même les imports) doit déclarer à quel
package appartient la classe.

Java
package [Link]; // Déclaration du package

public class Produit {


// Code de la classe
}

Convention de nommage : Les noms de packages sont toujours en minuscules et utilisent


souvent le nom de domaine de l'entreprise à l'envers pour garantir leur unicité (ex:
[Link]).

8.1.2 Le mot-clé import

Si vous êtes dans le package [Link] et que vous voulez utiliser la classe Produit qui
se trouve dans [Link], vous devez l'importer.

Java
package [Link];

import [Link]; // Importation spécifique


import [Link]; // Importation d'une classe standard de Java

public class Main {


public static void main(String[] args) {
Produit p = new Produit();
}
}

💡 Astuce Eclipse : Utilisez le raccourci Ctrl + Shift + O (Organize Imports) pour qu'Eclipse
ajoute automatiquement tous les import manquants et supprime ceux qui sont inutilisés !

1
DR ZOTCHI GIOVANI – CHAP8 JAVA – [Link]

8.2 Les Exceptions : Qu'est-ce que c'est ?


Une exception est un événement anormal qui survient pendant l'exécution du programme et
qui perturbe son flux normal. Si elle n'est pas gérée, le programme s'arrête brutalement (il
"plante") et affiche un texte rouge effrayant dans la console (la stack trace).

8.2.1 La hiérarchie des erreurs en Java

Tout part de la classe mère Throwable. Elle se divise en deux grandes familles :

1. Error : Ce sont des problèmes graves liés à la machine virtuelle (JVM), comme un
manque de mémoire (OutOfMemoryError). En général, on ne peut pas et on ne doit
pas essayer de les gérer. Le programme doit s'arrêter.
2. Exception : Ce sont des problèmes liés à la logique de l'application ou à
l'environnement (fichier introuvable, division par zéro). C'est ce que nous devons
gérer.

8.2.2 Checked vs Unchecked Exceptions

Parmi les Exception, Java fait une distinction stricte :

 Exceptions non vérifiées (Unchecked - RuntimeException) : Ce sont souvent des


erreurs de programmation logique (ex: NullPointerException,
ArrayIndexOutOfBoundsException). Le compilateur ne vous oblige pas à les gérer.
C'est à vous de corriger votre code.
 Exceptions vérifiées (Checked) : Ce sont des erreurs imprévisibles échappant au
contrôle du programmeur (ex: IOException si un fichier est supprimé par l'utilisateur,
SQLException si la base de données est hors ligne). Le compilateur vous oblige à les
gérer, sinon votre code refusera de compiler.

8.3 Gérer les Exceptions : try, catch, finally


Pour empêcher le programme de planter, on "capture" l'exception avec un bloc try-catch.

8.3.1 Le bloc try-catch

 try : Contient le code "risqué" qui pourrait déclencher une erreur.


 catch : Contient le code de secours à exécuter si (et seulement si) l'erreur se produit.

Java
import [Link];
import [Link];

public class DivisionSecurisee {


public static void main(String[] args) {
Scanner scanner = new Scanner([Link]);

try {
// Code risqué
[Link]("Entrez un nombre : ");
int nombre = [Link]();

2
DR ZOTCHI GIOVANI – CHAP8 JAVA – [Link]

int resultat = 100 / nombre;


[Link]("Résultat : " + resultat);

} catch (ArithmeticException e) {
// Ce bloc s'exécute si l'utilisateur tape 0
[Link]("Erreur : La division par zéro est
impossible !");

} catch (InputMismatchException e) {
// Ce bloc s'exécute si l'utilisateur tape du texte au lieu
d'un nombre
[Link]("Erreur : Vous devez saisir un nombre entier
!");
}

[Link]("Le programme continue normalement ici...");


[Link]();
}
}

8.3.2 Le bloc finally

Le bloc finally se place après les catch. Son code s'exécute toujours, qu'il y ait eu une
erreur ou non. Il est crucial pour "nettoyer" les ressources (fermer un fichier, fermer une
connexion réseau, ou fermer un Scanner).

Java
try {
// Ouverture et lecture d'un fichier...
} catch (Exception e) {
// Gestion de l'erreur...
} finally {
// S'exécute TOUJOURS
[Link]("Fermeture du fichier pour libérer la mémoire.");
}

8.4 Lancer et Déléguer des Exceptions : throw et throws


Parfois, ce n'est pas à votre méthode de gérer l'erreur, mais à la méthode qui l'a appelée.

8.4.1 Déléguer avec throws

On utilise throws dans la signature de la méthode pour prévenir : "Attention, cette méthode
est dangereuse, elle peut renvoyer telle exception. À celui qui l'appelle de se débrouiller !".

Java
// La méthode prévient qu'elle peut lancer une Exception
public void lireFichier(String chemin) throws IOException {
// Code qui lit le fichier (peut échouer si le fichier n'existe pas)
}

8.4.2 Lancer manuellement avec throw

On utilise throw (sans "s") à l'intérieur du code pour déclencher délibérément une exception,
souvent pour faire respecter une règle métier.

3
DR ZOTCHI GIOVANI – CHAP8 JAVA – [Link]

Java
public class Compte {
private double solde = 100.0;

public void retirer(double montant) {


if (montant > solde) {
// On déclenche manuellement une exception !
throw new IllegalArgumentException("Fonds insuffisants !");
}
solde -= montant;
}
}

8.5 Créer ses propres Exceptions personnalisées


Si les exceptions standard de Java ne suffisent pas à décrire votre problème métier, vous
pouvez créer les vôtres. Il suffit de créer une classe qui hérite de Exception (pour forcer la
vérification) ou de RuntimeException.

Java
// 1. Création de l'exception personnalisée
public class SoldeInsuffisantException extends Exception {
public SoldeInsuffisantException(String message) {
super(message); // On passe le message à la classe mère Exception
}
}

// 2. Utilisation
public void payer(double prix) throws SoldeInsuffisantException {
if (prix > [Link]) {
throw new SoldeInsuffisantException("Transaction refusée : solde
trop bas.");
}
// ... suite du code
}

Avec ce chapitre, vous avez maintenant les clés pour créer des applications Java robustes qui
ne s'effondrent pas à la moindre erreur utilisateur ou défaillance système.

Vous aimerez peut-être aussi