IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

vc++6 try catch gestion des exceptions..


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut vc++6 try catch gestion des exceptions..
    Salut !

    Deux problemes bizarres concernant la gestion des exceptions.
    1: j'ai mis en place une serie de try catch, en mode release, cela releve l'erreur et permet de recuperer l'execution du programme,
    mais je m'apercois que le code inséré dans le bloc catch ne semble pas etre executé.

    2: en passant en mode debug, je provoque l'erreur (CMemoryException) par un pointeur remis à NULL, l'exception se produit, mais impossible d'aller à l'execution du code catch..

    donc, est-ce que l'execution de code à l'interieur d'un catch est limitée à une certaines categorie de fonctions.

    et comment suivre se qui se passe dans un catch en mode debug.???

    en clair, la gestion des exceptions MFC marche si je leve un throw genre AfxThrowMemoryException()
    , mais les exceptions 0xC0000005 par exemple ne sont pas interceptées et ne peuvent donc pas être traitées..
    comment faire pour les intercepter et faire en sorte que le programme ne plante pas lamentablement...

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 484
    Par défaut
    Là, vous êtes en plein dans un sac de noeud qu'est la gestion des exceptions SEH ou "C" dans du code C++.

    L'option magique, c'est "/EHa".

    http://msdn.microsoft.com/en-us/libr...v=VS.100).aspx

    cf. : http://webcache.googleusercontent.co...&ct=clnk&gl=fr

  3. #3
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut oui mais pour quelle environnement.?
    parceque sous vc6, j'ai beau chercher, impossible de mettre la main sur où positionnner cette option, et est elle seulement valide sous vc6??

    heureusement, j'ai pu recuperer ces plantages autrement, en mettant une meilleur gestion et surveillance des process incriminés.

    mais j'ai toujours pas de solution viable pour intercepter ce genre d'exception qui peut provenir de n'importe quelle dll ou sous process qui décide de peter un cable tout seul dans son coin..

    finalement, en cherchant bien, il faut les mettre à la main, mais c'est dangereux, parcequ'alors, on a la responsabilité de la gestion de TOUTES les exceptions qui sont normalement gérées par le systéme, comme les exceptions de premiére chance par exemple relatives au chargement des resources des fenetres.(ca a l'air béte, mais certaines resources sont en lecture seules et leur lecture par le programme, qui veut un accés en ecriture sur ces resources, déclenche une exception, gérée par le systéme, qui recopie alors ces resources dans un emplacement adéquat, et renvoie le handle au programme.. imaginez de devoir gérer ca..)
    si on passe dans le mode de gestion complet, il faut gérer soit même tous ces evenements et un teraflop d'autres!

    sans doute que je suis trop inquiet.
    j'ai résolu mes bugs et bien mieux compris un sujet qui me posait probleme..

    donc, gerer les resources dans le programme et lever les erreurs par afxthrow.. pour generer l'interruption qui permet d'intercepter celle ci et de la traiter aprés l'appel de la fonction.
    ca peut paraitre idiot pour certains, mais pour comprendre et retenir, je dois TOUT comprendre du sujet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des exceptions imbriquée dans des Try et boucle
    Par Droïde Système7 dans le forum Débuter
    Réponses: 7
    Dernier message: 13/01/2010, 18h30
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    Réponses: 6
    Dernier message: 19/08/2004, 15h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 17h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo