Exceptions structurées sous Win32 (C++)
Remonter à Gestion des exceptions dans C++Builder
Win32 supporte la gestion des exceptions structurées du C (SEH), qui est similaire à la gestion des exceptions C++ standard. Toutefois, il existe certaines différences qui requièrent de procéder avec attention lorsque ces exceptions sont mélangées à du code C++ sensible aux exceptions.
Lorsque vous utilisez la gestion des exceptions structurées dans des applications C++Builder, vous devez garder les considérations suivantes à l'esprit :
- Les exceptions structurées du langage C sont utilisables dans les programmes C++.
- Les exceptions C++ ne peuvent pas être utilisées dans un programme C car elles requièrent que leur gestionnaire soit spécifié par le mot clé catch qui n'est pas autorisé dans un programme C.
- Une exception générée par un appel à la fonction RaiseException est gérée par un bloc
try
/__except
(C++) ou__try
/__except
(C). Vous pouvez aussi utiliser les blocstry
/__finally
ou__try
/__finally
. Voir Syntaxe des exceptions structurées (C++). Tous les gestionnaires des blocstry
/catch
sont ignorés lorsque RaiseException est appelée. - Les exceptions qui ne sont pas gérées par l'application n'entraînent pas d'appel à la fonction terminate, mais sont plutôt transmises au système d'exploitation (en principe, le résultat final est l'arrêt du processus).
- Les gestionnaires d'exceptions ne reçoivent pas de copie de l'objet exception, à moins qu'ils ne le demandent.
Vous pouvez utiliser les fonctions suivantes d'aide à la gestion des exceptions du langage C dans les programmes C ou C++ :
C++Builder ne restreint pas l'usage de la fonction UnhandledExceptionFilter au filtre d'exception des blocs __try
/ __except
ou try
/ __except
. Toutefois, le comportement du programme est indéfini lorsque cette fonction est appelée en dehors d'un bloc __try
/ __except
ou try
/ __except
.
Rubriques
- Syntaxe des exceptions structurées (C++)
- Gestion des exceptions structurées (C++)
- Filtrage des exceptions structurées (C++)
- Mélange des exceptions standard et des exceptions structurées (C++)
- Définition des exceptions structurées (C++)
- Déclenchement des exceptions structurées (C++)
- Blocs de terminaison SEH (C++)
- Options du compilateur de gestion des exceptions C++Builder