Exception

Définition, exemples et bonnes pratiques

À retenir

  • C'est une interruption du flux normal du code.
  • Elle peut être anticipée et gérée via des blocs spécifiques (try...catch).
  • Une exception non gérée entraîne généralement la fermeture du programme.

Une exception est un événement inattendu qui survient pendant l'exécution d'un programme et qui interrompt son déroulement normal. C'est un peu comme un signal d'alarme qui se déclenche lorsqu'une anomalie survient (par exemple, essayer d'ouvrir un fichier qui n'existe pas), permettant au programme de réagir de manière contrôlée au lieu de s'arrêter brutalement.

Étymologie

Le terme provient du latin excipere, signifiant « retirer » ou « mettre à part ». En informatique, il s'est généralisé avec l'apparition de langages structurés pour désigner des situations de traitement qui sortent de la règle générale (le flux nominal).

Exemples d'usage

  • Une division par zéro dans un logiciel de comptabilité qui génère une ArithmeticException.
  • Une application mobile qui tente de charger une image alors que la connexion internet est coupée (NetworkError).
  • Un programme qui essaie d'accéder à une case mémoire qui n'existe pas.

Cas d'usage

Le mécanisme d'exception est utilisé dans le développement d'applications pour séparer le code qui réalise les tâches (logique métier) du code qui gère les erreurs. Cela permet de rendre les programmes plus robustes face aux imprévus extérieurs (problèmes réseau, fichiers manquants, erreurs de saisie).

Bonnes pratiques

Il faut éviter d'attraper des exceptions de manière trop générique sans rien en faire (le fameux "silencing"). La bonne pratique consiste à n'intercepter que les erreurs que l'on sait traiter et à toujours informer l'utilisateur ou le système (via des logs) de ce qui s'est passé.

Synonymes

anomalie d'exécution incident erreur logicielle

Antonymes

exécution nominale succès flux standard

Conseil

Quand vous débutez, apprenez à lire la 'Stack Trace' (la pile d'appels) qui s'affiche lors d'une exception : elle vous indique précisément le chemin parcouru par le code et la ligne exacte où le problème est survenu.

Questions fréquentes

Quelle est la différence entre une exception et une erreur ?

Généralement, une exception est un problème que le programme peut tenter de résoudre ou de contourner, tandis qu'une erreur (comme une panne matérielle) est souvent fatale et impossible à gérer par le code.

Est-ce que les exceptions ralentissent le programme ?

Lancer une exception est plus coûteux en ressources qu'un simple test conditionnel (if/else), il ne faut donc pas les utiliser pour gérer la logique normale de l'application mais uniquement pour les cas anormaux.