Les exceptions dans Java

Comment et quand utiliser les exceptions dans Java ?

Qu’est-ce qu’une exception?

Une exception est un événement indésirable ou inattendu, qui se produit lors de l’exécution d’un programme, c’est-à-dire au moment de l’exécution, qui perturbe le flux normal des instructions du programme.

Error vs exception

Error: une erreur indique un problème grave qu’une application raisonnable ne doit pas essayer de détecter.

Exception: Exception indique les conditions qu’une application raisonnable peut essayer de détecter.

Hiérarchie des exceptions

Tous les types d’exception et d’erreur sont des sous-classes de la classe Throwable, qui est la classe de base de la hiérarchie. Une branche est dirigée par Exception. Cette classe est utilisée pour des conditions exceptionnelles que les programmes utilisateur doivent capturer. NullPointerException est un exemple d’une telle exception. Une autre branche, Error, est utilisée par le système d’exécution Java (JVM) pour indiquer les erreurs liées à l’environnement d’exécution lui-même (JRE). StackOverflowError est un exemple d’une telle erreur.

Comment le programmeur gère une exception?

La gestion des exceptions Java est gérée au moyen de cinq mots clés: try, catch, throw, throws et finally. En bref, voici comment ils fonctionnent. Les instructions de programme susceptibles de générer des exceptions sont contenues dans un bloc try. Si une exception se produit dans le bloc try, elle est levée. Votre code peut intercepter cette exception (à l’aide d’un block catch) et la gérer de manière rationnelle. Les exceptions générées par le système sont automatiquement levées par le système d’exécution Java. Pour lever manuellement une exception, utilisez le mot-clé throw. Toute exception rejetée par une méthode doit être spécifiée en tant que telle par une clause throws. Tout code devant obligatoirement être exécuté à la fin d’un bloc try est placé dans un bloc finally.

À lire aussi  Création d'une application web avec Java EE

Considérons le programme Java suivant.

// programme java pour demontrer le besoin 
// d'utiliser la clause try-catch

class AIF { 
public static void main (String[] args) { 

// taille de table est 4. 
int[] arr = new int[4]; 

// cette instruction provoque une exception
int i = arr[4]; 

// l'instruction suivante ne sera jamais exécutée
System.out.println("Bonjour, je veux être executé"); 
} 
}

Sortie :

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at AIF.main(AIF.java:9)

Explication: Dans l’exemple ci-dessus, un tableau est défini avec une taille, c’est-à-dire que vous pouvez accéder aux éléments uniquement entre les index 0 et 3. Mais si vous essayez d’accéder aux éléments situés à l’index 4 (par erreur), c’est la raison pour laquelle il génère une exception. La JVM termine le programme de manière anormale. L’instruction System.out.println («Bonjour, je veux être exécuté»); ns s’exécutera jamais. Pour l’exécuter, nous devons gérer l’exception à l’aide de try-catch. Par conséquent, pour continuer le déroulement normal du programme, nous avons besoin d’une clause try-catch.

Comment utiliser la clause try-catch ?

try {
// bloc de code pour surveiller les erreurs
// le code que vous pensez peut générer une exception
}
catch (ExceptionType1 exOb) {
// gestionnaire d'exceptions pour ExceptionType1
}
catch (ExceptionType2 exOb) {
// gestionnaire d'exceptions pour ExceptionType2
}
// optionnel
finally {
// bloc de code à exécuter après la fin du bloc try
}

Points à retenir :

Dans une méthode, plusieurs instructions peuvent générer une exception. Placez donc toutes ces instructions dans son propre bloc try et fournissez un gestionnaire d’exceptions distinct dans son propre bloc catch pour chacune d’elles.

Si une exception se produit dans le bloc try, cette exception est gérée par le gestionnaire d’exceptions qui lui est associé. Pour associer un gestionnaire d’exceptions, il faut mettre block catch après celui-ci. Il peut y avoir plus d’un gestionnaire d’exception. Chaque bloc catch est un gestionnaire d’exceptions qui gère l’exception du type indiqué par son argument. L’argument ExceptionType déclare le type de l’exception qu’il peut gérer et doit être le nom de la classe qui hérite de la classe Throwable.

À lire aussi  Apprendre à programmer en langage Java

Pour chaque bloc try, il peut y avoir zéro ou plusieurs blocs catch, mais un seul bloc final.
Le bloc finally est facultatif. Il est toujours exécuté, qu’une exception se produise ou non dans le bloc try.

Si une exception se produit, elle sera exécutée après avoir essayé et attrapé des blocs. Et si aucune exception ne se produit, elle sera exécutée après le bloc try. Le bloc finally en java est utilisé pour mettre des codes importants tels que le code de nettoyage, par exemple. fermer le fichier ou fermer la connexion.


Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page