Cheminement des exceptions
Lorsqu’une exception est levée par une fonction, on cherche tout d’abord un
gestionnaire dans l’éventuel bloc try associé à cette fonction ; si l’on n’en trouve pas
(ou si aucun bloc try n’est associé), on poursuit la recherche dans un éventuel bloc try
associé à une fonction appelante et ainsi de suite. Si aucun gestionnaire d’exceptions
n’est trouvé, on appelle la fonction terminate qui, par défaut appelle abort, laquelle
fournit un message du genre abnormal program termination.
Spécification d’interface
Une fonction (y compris main) peut spécifier les exceptions qu’elle est susceptible de
provoquer (elle-même, ou dans les fonctions qu’elle appelle à son tour). Elle le fait à
l’aide du mot-clé throw, suivi, entre parenthèses, de la liste des exceptions concernées.
Dans ce cas, toute exception non prévue et levée à l’intérieur de la fonction (ou d’une
fonction appelée) entraîne l’appel d’une fonction particulière nommée unexpected. Par
défaut, cette fonction appelle la fonction terminate.
331
Lorsqu’une exception est levée par une fonction, on cherche tout d’abord un
gestionnaire dans l’éventuel bloc try associé à cette fonction ; si l’on n’en trouve pas
(ou si aucun bloc try n’est associé), on poursuit la recherche dans un éventuel bloc try
associé à une fonction appelante et ainsi de suite. Si aucun gestionnaire d’exceptions
n’est trouvé, on appelle la fonction terminate qui, par défaut appelle abort, laquelle
fournit un message du genre abnormal program termination.
Spécification d’interface
Une fonction (y compris main) peut spécifier les exceptions qu’elle est susceptible de
provoquer (elle-même, ou dans les fonctions qu’elle appelle à son tour). Elle le fait à
l’aide du mot-clé throw, suivi, entre parenthèses, de la liste des exceptions concernées.
Dans ce cas, toute exception non prévue et levée à l’intérieur de la fonction (ou d’une
fonction appelée) entraîne l’appel d’une fonction particulière nommée unexpected. Par
défaut, cette fonction appelle la fonction terminate.
331
