Thread overview
Some Problem with exception
Oct 14, 2002
Neo
Oct 14, 2002
Walter
Oct 14, 2002
Jan Knepper
Oct 14, 2002
Larry Brasfield
October 14, 2002
hi
i tried simple code

char *c= NULL;
try{
    *c= 10;
}
catch(...){
    coutt<<"NULL POINTER ACCESS";
}

but this doesn't work as expected. same code works in VC++. i have compiled it with -Ae option.


October 14, 2002
What happens when you run it?

"Neo" <newneo2@yahoo.com> wrote in message news:aoekhu$di0$1@digitaldaemon.com...
> hi
> i tried simple code
>
> char *c= NULL;
> try{
>     *c= 10;
> }
> catch(...){
>     coutt<<"NULL POINTER ACCESS";
> }
>
> but this doesn't work as expected. same code works in VC++. i have
compiled
> it with -Ae option.
>
>


October 14, 2002
I think VC might use try and catch for language exceptions as well as regular
(hardware) exceptions.
Basically there is nothing wrong with the code, except when try/catch would
handle the hardware exceptions too. Than *c = 10 would throw an exception.



Neo wrote:

> hi
> i tried simple code
>
> char *c= NULL;
> try{
>     *c= 10;
> }
> catch(...){
>     coutt<<"NULL POINTER ACCESS";
> }
>
> but this doesn't work as expected. same code works in VC++. i have compiled it with -Ae option.

October 14, 2002
In article <aoekhu$di0$1@digitaldaemon.com>, Neo (newneo2@yahoo.com) says...
> hi
> i tried simple code
> 
> char *c= NULL;
> try{
>     *c= 10;
> }
> catch(...){
>     coutt<<"NULL POINTER ACCESS";
> }
> 
> but this doesn't work as expected.

According to the C++ standard, (and assuming that
'NULL' expands to '0'), that behavior of that code
is undefined.  That means there is no correct
expectation other than "anything can happen".

> same code works in VC++.

The fact that your unduly narrow expectation was
met in no way implies a fault in DMC++.  Since
any behavior is allowed, there cannot be any
incorrect result.

-- 
-Larry Brasfield
(address munged, s/sn/h/ to reply)