I have an exception which its raise
command causes stack overflow. I read this article in order to know what should I do: http://www.debuggingexperts.com/modeling-exception-handling
What I understood is the exception 0xc0000025
means attempt to catch an exception which is forbidden to be caught (EXCEPTION_NONCONTINUABLE_EXCEPTION
). Am I right?
If so, I wish to know what cause the exception to be defined as non-continuable. The exception is defined in Pascal and derived from Exception
object.
In addition, I failed to found where this exception is handled, and added by myself a try-catch
block. The exception caught successfully. Why?
EDIT
I want to explain the specific situation I need help:
There is a C++ code which calls Pascal code, which has the exception definition, and raise
command happens in it.
Before I put the try-catch
block in the C++ code, the raise
in Pascal causes 1000 times exception of EXCEPTION_NONCONTINUABLE_EXCEPTION
until stack overflowed.
After I added the try-catch
block in the C++ code, the raise
in Pascal code returned to the catch
block in the C++ code.
Now I have 2 questions:
- Why process didn't stop on the first
NONCONTINUABLE
exception? - Why the
catch
block in C++ code didn't cause this exception?