Traitement des exceptions

Lorsqu'un programme s'exécute, un certain nombre de conditions anormales et appelés « exceptions » des erreurs peut se produire. Il peut s'agir de la mémoire, erreurs d'allocation de ressources et l'incapacité de trouver les fichiers en cours d'exécution.

La bibliothèque Microsoft Foundation Class utilise un régime de gestion des exceptions est étroitement modelé après celle proposée par le Comité des normes ANSI C++. Un gestionnaire d'exceptions doit être créé avant d'appeler une fonction qui peut rencontrer une situation anormale. Si la fonction rencontre un état anormal, elle lève une exception et le contrôle est passé au gestionnaire d'exception.

Plusieurs macros incluses avec la bibliothèque Microsoft Foundation Class mettra en place les gestionnaires d'exceptions. Un certain nombre d'autres fonctions globales aide à lever des exceptions spécialisées et mettre fin à des programmes, si nécessaire. Ces macros et fonctions globales entrent dans les catégories suivantes:

Pour des exemples et plus de détails, consultez l'article Exceptions dans le Guide du programmeur Visual C++.

Macros d'exception

ESSAYEZ Désigne un bloc de code pour le traitement des exceptions.
CAPTURES Désigne un bloc de code pour attraper une exception dans le précédent bloc TRY.
CATCH_ALL Désigne un bloc de code pour la capture de toutes les exceptions du précédent bloc TRY.
AND_CATCH Désigne un bloc de code pour la capture de types d'exceptions supplémentaires depuis le précédent bloc TRY.
AND_CATCH_ALL Désigne un bloc de code pour la capture de tous les autres types supplémentaires d'exception levées dans un bloc TRY -précédent.
END_CATCH Se termine le dernier bloc de code CATCH ou AND_CATCH.
END_CATCH_ALL Se termine le dernier bloc de code CATCH_ALL.
LANCER Lève une exception spécifiée.
THROW_LAST Lève l'exception actuellement gérée pour le prochain gestionnaire externe.

Jetant à l'exception des fonctions

AfxThrowArchiveException Lève une exception d'archive.
AfxThrowFileException Lève une exception de fichier.
AfxThrowMemoryException Lève une exception de mémoire.
AfxThrowNotSupportedException Lève une exception non-prise en charge.
AfxThrowResourceException Lève une exception Windows de ressource non trouvée.
AfxThrowUserException Lève une exception dans une action du programme initié par l'utilisateur.

MFC fournit deux fonctions jets exception spécifiquement pour les exceptions OLE:

Fonctions OLE Exception

AfxThrowOleDispatchException Lève une exception au sein d'une fonction d'automation OLE.
AfxThrowOleException Lève une exception OLE.

Pour soutenir les exceptions de base de données, les classes de base de données fournissent deux classes d'exception, CDBException et CDaoExceptionet fonctions globales en charge les types d'exception:

Fonctions d'Exception DAO

AfxThrowDAOException Lève un CDaoException à partir de votre propre code.
AfxThrowDBException Lève une exception CDBException depuis votre propre code.

MFC fournit la fonction de terminaison suivantes:

Cessation de fonctions

AfxAbort Appelé à mettre fin à une application lorsqu'une erreur fatale se produit.

Voir aussi  ;CException

Index