Un certain nombre de méthodes (au sens de C++), dans diverses classes, savent reconnaître des situations particulières (en général indésirables) portant sur leurs paramètres ou sur l'état des entités qu'elles manipulent. Dans une telle situation, la méthode en question peut lever une exception.
- Directive d'inclusion : #include CoreException.h
Le langage C++ offre un mécanisme standard de reconnaissance et de traitement d'exception. Il consiste pour le programmeur à déclarer des classes particulières dites classes d'exceptions. Dans une situation qu'il a choisie (et qu'il a pris soin de spécifier dans un bloc try), le programmeur crée une instance d'une classe d'exception appropriée (instruction throw) en valuant ses attributs en fonction du problème rencontré. L'exploitation (c'est-à-dire le captage d'une exception en cours d'exécution) se fait dans un bloc catch qui suit le bloc try dans lequel a été inséré (directement ou indirectement) l'appel à la méthode qui a levé l'exception.
Ce mécanisme standard n'est utilisé dans la bibliothèque DIESE que pour capter des erreurs dans la gestion des tableaux (classe Tableau). Les messages édités lors de ces erreurs sont documentés dans le premier lien dans la liste ci-dessus. On explique aussi comment le développeur d'une application peut exploiter ce mécanisme dans son propre code.
Pour toutes les autres erreurs envisagées, les déclenchements d'exceptions par throw ont été remplacés par des appels à des fonctions globales qui réalisent le même effet. Elles sont de deux types :
Les messages édités lors de ces erreurs sont documentés dans les liens à partir du second, dans la liste ci-dessus.
- celles qui provoquent l'arrêt du programme (exceptions proprement dit) : un message d'erreur est alors toujours affiché ;
- celles qui ne font qu'afficher un avertissement, et encore seulement si la variable globale g_BD_TraceWarnings a la valeur vrai.