Sommaire

Exceptions

1. Les approches de bas niveau

Tout programme est soumis aux aléas de l’environnement qui le fait fonctionner. Il peut intervenir des défaillances matérielles, certains processus bloquent des ressources critiques, la mémoire n’est pas inépuisable...

Pour qu’un programme entre dans la catégorie des logiciels, il doit être tolérant vis-à-vis de ces événements et ne pas se bloquer, ou pire, s’interrompre brutalement.

Les anciens langages de programmation sont en général assez mal pourvus pour traiter les situations problématiques, et les développeurs se sont souvent appuyés sur les dispositifs prévus par leur environnement.

a. Drapeaux et interruptions

Certains microprocesseurs disposent d’instructions destinées à déclencher des sous-programmes - des fonctions en langage C - lorsque certaines conditions sont réunies : une division par zéro, un dépassement de capacité, une faute dans la gestion de la mémoire paginée... Il n’est pas rare de voir une partie de ces interruptions laissées à l’entendement du programmeur système. Ainsi, le système d’exploitation MS-DOS a-t-il programmé sur l’interruption n°19 le redémarrage du système. Il existe des pilotes de périphériques qui emploient ces interruptions pour synchroniser des échanges de données. Citons ...