Jean-Michel Reghem wrote:

Soit un programme (c++) super con:


#include "stdio.h"

int main(int argc, char* argv[])
{
        try
        {
                int i=1/0;
        }
        catch(...)
        {
                printf("exception catched");
        }
        return 0;
}

--> compil� comme ceci
gcc ./test.cpp -o test

--> on re�oit un Floating Point Exception ... c'est donc pas catch� par le catch(...)

--> autre test avec

char *pointeur=NULL;
strcpy(pointeur,"truc");

--> de nouveau, au run, segmentation fault ... c'est pas catch� ...

On a essay� avec

throw(5);

--> veut pas compiler ... ... OK, on rajoute -lstdc++ (ou c++ � la place de gcc)

--> l�, ca catche correctement

On r�essaie les autres possibilit�s avec -lstdc++ ... --> m�me comportement

on a essay� -fexception : m�me comportement ...

Comment se fait-il que le catch ne fonctionne pas???

C'est gcc 3.2 ???
Avec une beta gcc 3.3 recompil�e, ca fait exactement la m�me chose



Tu comprendras ton erreur via http://www-sop.inria.fr/semir/personnel/Francis.Avnaim/Cours/Inria/C++/DeposeChap/Cpp12.html pour ce qui est de ton probl�me de catch, c'est assez bien expliqu�.

Sinon il vaut mieux faire un #include <stdio.h> et "g++ toto.c -o toto"

--
 Cedric Gavage <[EMAIL PROTECTED]>
 http://unixtech.be - http://gavage.com - OpenPGP: 0xED325C64



--
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]>

Répondre à