next up previous contents
Next: Table des matières Up: Exceptions en C++ Previous: terminate

Spécification d'exceptions dans les fonctions

Les exceptions que peuvent générer les fonctions sont une caractéristique importante de ces fonctions, il est donc utile qu'elles figurent dans l'interface de cette fonction: pour un utilisateur de fonction, afin de pouvoir traiter les comportements ``anormaux'' il faut connaître les exceptions que peuvent lever cette fonction.

On peut donc en C++ préciser dans l'entête d la fonction les exceptions qui pourront être levées à partir de cette fonction.

Exemple:

void f() throw (erreur, char *p, int)
{ //...
}

f ne pourra lever que des exceptions des types précisés après le throw, cette déclaration permet de définir correctement l'interface avec d'autres fonctions en tenant compte des exceptions. Si une exception non prévue dans la liste apparaît, la fonction unexpected() sera appelée. S'il n'y a pas de spécification d'exception, toutes les exceptions possibles sont autorisées :

void f() throw()  //aucune exception
{   //...
};
void g()          //toutes exceptions
{  //...
};




Mon Oct 20 14:02:48 MET 1997