X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f From: "Jesper Lund" Newsgroups: comp.os.msdos.djgpp References: <3C66CA98 DOT 70901 AT vif DOT com> Subject: Re: c++ exceptions Lines: 38 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 Message-ID: Date: Sun, 10 Feb 2002 22:07:10 +0100 NNTP-Posting-Host: 213.237.2.159 X-Complaints-To: news-abuse AT wol DOT dk X-Trace: news010.worldonline.dk 1013375325 213.237.2.159 (Sun, 10 Feb 2002 22:08:45 MET) NNTP-Posting-Date: Sun, 10 Feb 2002 22:08:45 MET Organization: Customer of Tiscali A/S (World Online) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Sahab Yazdani" wrote: > does GCC3.0.x support C++ exceptions properly?? or is it that I can't > code them properly?? > > I have this code (stripped down for newsgroups): > namespace Std { > class Exception { > public: > char *message; > Exception( char *message = NULL ); // this code works file! > }; You have to define the constructor somewhere, so this piece of code does not link properly. Your constructor should allocate memory for the char* message class member, and copy the string in the argument of the constructor (you need to give that argument a different name; right now it coincides with the class member). [snip] > > NOW by my logic, this primitive program should output: > File not found > > but it outputs nothing, yet if I change the line "printf( e.message);" > to "printf( "Exception Caught: %s\n", e.message );", it outputs: > Exception Caught: > so it is catching the exceptions properly, but the values in the > exception class is getting messed up. > The value of the e.message char pointer is 0, so printf outputs an empty string. This is to be expected since you never assign anything to the variable.