Share via


Le traitement des exceptions

Lorsqu'un programme s'exécute, de nombreuses conditions et erreurs anormales appelées « exceptions » peuvent se produire. Celles-ci peuvent inclure une mémoire insuffisante, des erreurs d'allocation de ressources, et des échecs de recherches de fichiers.

La bibliothèque MFC utilise un modèle de gestion des exceptions qui est modelisé étroitement à partir de celui proposé par le comité de normes ANSI pour C++. Un gestionnaire d'exceptions doit être installé avant d'appeler une fonction qui peut connaître une situation anormale. Si la fonction rencontre une anomalie, elle lève une exception et le contrôle est passé au gestionnaire des exceptions.

Plusieurs macros incluses dans la bibliothèque MFC installeront les gestionnaires d'exceptions. Plusieurs autres fonctions globales aident à lever des exceptions spécialisées et arrêter les programmes, si nécessaire. Ces macros et fonctions globales sont classées dans les catégorier suivantes:

  • Macros d'exception, qui structurent votre gestionnaire des exceptions.

  • Fonctions de levées d'exceptions, qui génèrent des exceptions de types spécifiques.

  • Fonctions d'arrêt, qui provoquent l'arrêt du programme.

Pour des exemples et plus d'informations, consultez l'article Exceptions.

Macros d'Exceptions

TRY

Indique un bloc de code pour le traitement d'exceptions.

CATCH

Indique un bloc de code pour intercepter une exception du bloc précédent de TRY.

CATCH_ALL

Indique un bloc de code pour intercepter toutes les exceptions du bloc précédent de TRY.

AND_CATCH

Indique un bloc de code pour intercepter des exceptions supplémentaires du bloc précédent de TRY.

AND_CATCH_ALL

Définit un bloc de code pour intercepter tous les autres types d'exception supplémentaires levés dans un bloc précédent de TRY.

END_CATCH

Termine le dernier CATCH ou bloc de code d' AND_CATCH.

END_CATCH_ALL

Arrête le dernier bloc de code d' CATCH_ALL.

THROW

Lève une exception spécifiée.

THROW_LAST

Lève l'exception actuellement gérée au gestionnaire externe suivant.

Fonctions de levées d'exceptions

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: ressource Windows non détectée.

AfxThrowUserException

Lève une exception dans une action de programme initiée par un utilisateur.

MFC fournit deux fonctions de levées d'exceptions spécifiques aux exceptions OLE:

Fonctions d'exception OLE

AfxThrowOleDispatchException

Lève une exception dans une fonction automation OLE.

AfxThrowOleException

Lève une exception OLE.

Pour prendre en charge les exceptions de base de données, les classes de base de données fournissent deux classes d'exception, CDBException et CDaoException et des fonctions globales pour prendre en charge les types d'exception:

Fonctions d'exception DAO

AfxThrowDAOException

Lève une CDaoException de votre propre code.

AfxThrowDBException

Lève une CDBException de votre propre code.

MFC fournit la fonction suivante d'arrêt :

Fonctions d'Arrêt

AfxAbort

Appelée pour mettre fin à une application lorsqu'une erreur irrécupérable se produit.

Voir aussi

Référence

CException, classe

Concepts

macro MFC et Globals