Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1354 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  STL : gestion des exception. appel explicite?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

STL : gestion des exception. appel explicite?

n°622503
jagstang
Pa Capona ಠ_ಠ
Posté le 27-01-2004 à 08:50:34  profilanswer
 

Hello,
 
Voilà le soucis. Comme on peut le voir dans ce code,  
http://cplus.about.com/library/weekly/aa122202d.htm
 
l'appel à l'exception est explicite
 

Code :
  1. try {
  2.         if (y == 0) {
  3.             throw DivideByZero(x, y);
  4.         }


Peux-t-ton récupérer une exception sans utiliser cette méthode ?
Je pensais à qqch comme ça :
 

Code :
  1. try
  2.     {
  3.     int nombre = 20 ;
  4.     for (int i=-5 ; i<6 ; ++i)
  5.         cout << nombre/i << endl ;
  6.     }
  7.     catch(const std::exception &e)
  8.     {
  9.     cout << e.what() ;
  10.     }


 
Merci
 
 
 
 
 

mood
Publicité
Posté le 27-01-2004 à 08:50:34  profilanswer
 

n°622505
Taz
bisounours-codeur
Posté le 27-01-2004 à 08:54:25  profilanswer
 

les exceptions ça fonctionne sur le principe : déclencheur - gestionnaire. donc si tu veux attraper une exception, encore faut il que quelqu'un la lance.
 
enfin j'ai rien compris
 
 
note que cet article est mauvais, leur exception à la con ne dérivant pas de std::exception.
 
moi j'aurais carrément fait un exception template :D

n°622509
jagstang
Pa Capona ಠ_ಠ
Posté le 27-01-2004 à 09:02:11  profilanswer
 

je m'attendait à te voir ici Taz. :)
 
Oui en fait ce que j'aimerais faire c'est laisser déclencher au système l'exception division par 0, et la traiter ensuite. Sans pour autant tester et déclencher l'exception. Tu vois l'astuce ?

n°622512
Taz
bisounours-codeur
Posté le 27-01-2004 à 09:05:42  profilanswer
 

le système en déclenchera pas, vu qu'une division par zéro est un comportement indéfini (UB). certains système jète une exception, d'autres non. donc pas possible de reposer sur le système. de toutes façons aucune expcetion standard ne représente ça. tu peux travailler avec un truc à la CheckedNumeric<T>


Message édité par Taz le 27-01-2004 à 09:06:10
n°622513
jagstang
Pa Capona ಠ_ಠ
Posté le 27-01-2004 à 09:08:54  profilanswer
 

ok merci

n°622514
Taz
bisounours-codeur
Posté le 27-01-2004 à 09:09:40  profilanswer
 

pis bon, le C++ te tape les merdes du C et a été conçu sans exceptions : la logique générale est donc plus LBYL que EAFP

n°625438
cnstrnd
Posté le 29-01-2004 à 21:56:30  profilanswer
 

Dans ce genre d'erreur bas niveau, le langage n'est d'aucune utilité. Si tu bosses exclusivement sous windows il reste les SEH ...

n°625479
jagstang
Pa Capona ಠ_ಠ
Posté le 29-01-2004 à 22:52:46  profilanswer
 

SEH ?

n°625480
*syl*
--&gt; []
Posté le 29-01-2004 à 22:56:56  profilanswer
 

Structured Exception Handling

n°625636
LeGreg
Posté le 30-01-2004 à 03:54:34  profilanswer
 

exemple a la con d'utilisation des SEH
 

Code :
  1. __try
  2.         {
  3.             const CObject* pObj = reinterpret_cast<const CObject*>(pPtr);
  4.             if(pObj && pObj->m_dwObjId == OBJID)
  5.                 return pObj;
  6.             else
  7.                 return 0;
  8.         }
  9.         __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
  10.         {
  11.             DPF("Object - Bad pointer Caused Access Violation" );
  12.             return 0;
  13.         }


 
Au niveau du coût c'est peu cher (remplacement du pointeur vers le exception handler à la volée)
 
Attention aux constructeurs/destructeurs C++, mais il y a un warning en general.
 
LeGreg


Message édité par LeGreg le 30-01-2004 à 03:54:52
mood
Publicité
Posté le 30-01-2004 à 03:54:34  profilanswer
 

n°625637
LeGreg
Posté le 30-01-2004 à 04:05:01  profilanswer
 

et ça marche pas non plus en Windows 16.
 
LeGreg


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  STL : gestion des exception. appel explicite?

 

Sujets relatifs
Gestion de fichier des repertoiresGestion des collisions avec OPCODE
[C++/STL] Retrait d'un élément dans une listQuelle structure de base adopter ? Gestion d'événements.
Gestion des champs en auto-incrémentation avec PEARgestion du retour a la ligne dans une variable???
[Delphi] Gestion mémoire bizarre[Tomcat] Gestion de cache ?
Creer Systeme NEWS - HTML - avec gestion admin ???Levée d'exception & singleton
Plus de sujets relatifs à : STL : gestion des exception. appel explicite?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR