Cedric Gavage �crivait ( Friday 25/07/2003 11:45 ) dans le message ci-dessous: ---
Jean-Michel Reghem wrote:
Tu comprendras ton erreur via http://www-sop.inria.fr/semir/personnel/Francis.Avnaim/Cours/Inria/C++/DeposeChap/Cpp12.html
euh???
Tu peux d�tailler l�?
Le but ici, est de tester gcc, parce qu'il semble que les exceptions ne sont pas catch�es dans mon programme --> d'o� un mini-mini-programme de test ...
le catch(...) est destin� � �viter la segmentation fault lors d'erreur unexcepcted ...
Je peux pas m'amuser � mettre des catch pour chaque type d'erreur, sachant que ma librairie utilise d'autres librairies dont je ne maitrise pas le code ...
Je vois pas bien o� se trouve l'�ventuelle erreur ... c'est du b�te c++, et compil� sous windows, ca catch sans probl�me ...
catch(...) n'intercepte pas toute erreur (ou plut�t tout type d'erreur existante) ;)
Pour info: "C++ exceptions can only be raised synchronously; for all intents and purposes this means at a (implicit or explicit) function call. Processor exceptional conditions (like divide by zero, use of signalling NaNs, et al) are unrelated. If you want a divide-by-zero exception you have to define it, then check for it (in an OS-specific manner) in every place that does arithmetic, and decide what you want to do." Cela a peut-�tre chang� mais je doute ;)
oui ... OK ... C'est pour �a que j'ai essay�: char *pointertest=NULL; strcpy(pointertest,"coucou");
--> ca entre aussi dans les processor exceptions? Pour moi, c'est plutot une memory exceptions ...
Sinon tu dis compil� sous windows �a catch sans probl�me ? exactement le m�me code?
oui ...
avec gcc ? ou tu compares avec Visual C++?
ben, le gcc sous windows ne catche pas non plus ...
Par contre, avec visual c++, aucun probl�me ...
--> des erreurs memoires, etc ... dans des librairies sont catch�es (sauf en cas de gros destroyage de la stack), ce qui permet de ne pas planter le programme de base ... et d'�ventuellement r�initialiser la librairie ...
Une technique que j'ai d�j� lue sous unix, c'est d'intercepter le signal SIGFPE (floating point exception) et d'utiliser la technique throw/catch � l'int�rieur du handler... mais bon je n'ai jamais test� ;)
Pour Visual C++, il y a des extensions Microsoft qui peuvent agir...
Peut-�tre un peu de doc l�: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_signal.asp
OK ... mais je confirme que un catch(...) sous visual catche pratiquement tout ...
que ce soit la division par z�ro ou l'�criture sur une zone memoire non initialis�e ...
oui mais " " c'est en g�n�ral pour un include local (. , path, ...) ;)
ouais ... OK :-)) mais bon :-) ... ca marche pas mieux :-)
j'ai test� avec g++, c++, gcc ... mais c'est choux rouge et verre � pils ... de toute fa�on, c'est quand m�me gcc derri�re (avec �ventuellement quelques flags en plus genre -lstdc++)
Certes mais ce n'est pas pour faire joli ;)
on est d'accord :-)
a+
Jean-Michel ---
Jean-Michel Reghem Voice Technology Development Engineer E-Mail : mailto:[EMAIL PROTECTED]
Babel Technologies S.A.
Boulevard Dolez 33 B-7000 Mons (Belgium)
Tel: +32-(0)65 37.43.06
http://www.babeltech.com
-- Avec i-mode, vivez une toute nouvelle experience de la communication et des services en ligne. Plus d�info sur http://www.imode.be CyberCafe 2.0 <http://www.cybercafe.tv> Chaque Mardi 19h15 sur La 2! Desabonnement par email : <mailto:[EMAIL PROTECTED]>
