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.
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. :mouarf: