Les exceptions se produisent lorsque des situations anormales surviennent durant l'exécution d'un programme Java.

Les exceptions représentent un moyen efficace de détecter des problèmes éventuels dans une application Java.

Plus un compilateur Java sera sévère dans l'analyse d'un programme, c'est-à-dire dans sa capacité à générer des avertissements et des alertes, plus la fiabilité de l'application sera meilleure.

En Java, il existe deux classes intéressantes dérivées de la classe Throwable :

  • la classe Error, d'où proviennent les erreurs système souvent irrécupérables représentées par les classes suivantes :
    • VirtualMachineError : indique de graves problèmes sur la machine virtuelle Java,
    • AWTError : indique une sérieuse erreur du système de gestion de l'interface utilisateur AWT (Abstract Window Toolkit),
    • ThreadDeath : indique l'arrêt inopportun d'un Thread,
    • LinkageError : indique des problèmes de liaisons entre des classes.
    Les exceptions provenant de la classe Error dépassent souvent le domaine de compétence d'un programmeur. Toutefois, certaines peuvent être gérées, à l'image d'une erreur du type OutOfMemoryError (plus de mémoire).

  • la classe Exception, d'où sont issues les fameuses exceptions déclenchées par le compilateur.

Les exceptions sont donc de véritables objets créés suite à la détection d'une anomalie dans le déroulement du programme.

Contrairement à celles de la classe Error, les exceptions de la classe Exception peuvent et dans la plupart des cas, doivent être interceptées.

Il n'est pas nécessaire de gérer les exceptions de la classe RuntimeException. Ces dernières avec celles de la classe Error et de leurs sous-classes sont d'ailleurs communément appelées les exceptions non-contrôlées (unchecked).

En ce qui concerne toutes les autres, c'est-à-dire les exceptions contrôlées, il est impératif d'inclure un dispositif d'interception et de gestion, sans lequel Java ne pourra mener à son terme la compilation d'un programme.

Toutes les méthodes susceptibles de générer une exception doivent soit être comprises dans un bloc try, soit signaler au moyen de la commande throws cette particularité.

Si les exceptions contrôlées ne seraient pas interceptées, leur thread d'exécution s'interrromprait et la console Java afficherait un message d'erreur.

Sommaire