title: Creating NonContinuable exception in delphi
body: <p>I have an exception which its <code>raise</code> command causes stack overflow. I read this article in order to know what should I do: <a href="http://www.debuggingexperts.com/modeling-exception-handling" rel="nofollow">http://www.debuggingexperts.com/modeling-exception-handling</a></p>
  
  <p>What I understood is the exception <code>0xc0000025</code> means attempt to catch an exception which is forbidden to be caught (<code>EXCEPTION_NONCONTINUABLE_EXCEPTION</code>). Am I right?</p>
  
  <p>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 <code>Exception</code> object.</p>
  
  <p>In addition, I failed to found where this exception is handled, and added by myself a <code>try-catch</code> block. The exception caught successfully. Why?</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>I want to explain the specific situation I need help:<br>
  There is a C++ code which calls Pascal code, which has the exception definition, and <code>raise</code> command happens in it.<br>
  Before I put the <code>try-catch</code> block in the C++ code, the <code>raise</code> in Pascal causes 1000 times exception of <code>EXCEPTION_NONCONTINUABLE_EXCEPTION</code> until stack overflowed.<br>
  After I added the <code>try-catch</code> block in the C++ code, the <code>raise</code> in Pascal code returned to the <code>catch</code> block in the C++ code.</p>
  
  <p>Now I have 2 questions:</p>
  
  <ol>
  <li>Why process didn't stop on the first <code>NONCONTINUABLE</code> exception?</li>
  <li>Why the <code>catch</code> block in C++ code didn't cause this exception?</li>
  </ol>