wrote:
> I am using gcc3.2.3 as the compiler for my c++ code on Red Hat Linux
> Enterprise 3. I find that even an exception is caught, "Segment Fault"
> is still thrown out and program crashes.
>
> Here is my code,
> int func0(){
> ...
> if (...some condition...){
> throw MyException();
> }
> }
>
> char* func(){
> try{
> ...
> func0();
> }
> catch (MyException& ){
> cout << "Hey catch exception" << endl;
> return NULL;
> }
> }
>
> In running the code, I can see that "Hey catch exception", and then
> "Segment Fault", it never returns to the caller of func().
>
> Is this a known problem?
How can it be answered if we don't know what 'MyException' is and how you
call the 'func' and what you do with the return value. Besides, the code
you posted contains instances of '...' which also can be the cause of the
faults.
BTW, not all control paths in 'func' have the 'return' statements.
Follow the recommendations in FAQ 5.8.
V