Exception
Une exception (abréviation de « événement exceptionnel ») est une erreur ou un événement inattendu qui se produit pendant l’exécution d’un programme. Lorsqu’une exception se produit, elle interrompt le déroulement du programme. Si le programme peut gérer et traiter l’exception, il peut continuer à s’exécuter. Si une exception n’est pas traitée, le programme peut être forcé de se fermer.
Plusieurs langages de programmation prennent en charge les exceptions, mais les utilisent de différentes manières. Par exemple, les exceptions font partie intégrante du langage Java et sont souvent utilisées pour contrôler le déroulement d’un programme. Java comprend une Exception classe, qui possède des dizaines de sous-classes, comme TimeoutException, UserException et IOException. Des sous-classes comme IOException contiennent des exceptions plus spécifiques, telles que FileNotFoundException et CharacterCodingException, qui peuvent être « levées » si un fichier est introuvable ou si l’encodage des caractères d’une chaîne n’est pas reconnu.
D’autres langages utilisent uniquement les exceptions pour intercepter des erreurs d’exécution fondamentales, comme l’échec de l’allocation de mémoire ou les erreurs au niveau du système. Par exemple, un programme C++ peut lever l’exception bad_alloc lorsqu’il est impossible d’allouer de la mémoire, et l’exception system_error lorsque le système d’exploitation produit une erreur.
Gestion des exceptions
Un programme informatique bien écrit vérifie la présence d’exceptions et les traite de manière appropriée. Cela signifie que le développeur doit vérifier les exceptions probables et écrire du code pour les traiter. Si un programme gère correctement les exceptions, les erreurs inattendues peuvent être détectées et gérées sans faire planter le programme.
Les exceptions sont « levées » lorsqu’elles se produisent et sont « interceptées » par un autre code du programme. Elles peuvent être levées explicitement à l’aide de l’instruction throw ou implicitement dans une clause try. Voici un exemple de syntaxe « try / catch » en Java. Le code suivant tente d’effectuer une division par zéro, mais lève une exception ArithmeticException et renvoie 0 comme résultat.
1. int a = 11;
2. int b = 0;
3. int result = 0;
4. try {
5. int c = a / b;
6. result = c;
7. } catch(ArithmeticException ex) {
8. result = 0;
9. }
10. return result;
Une exception est levée à la ligne 5 (lorsque 11 est divisé par 0), et le reste de l’instruction try (ligne 6) n’est donc pas exécuté. À la place, l’exception est interceptée à la ligne 7 et le résultat renvoyé est 0.
Testez vos connaissances