Are there any circumstances under which the finally block does not get executed?
<p>Please note this code:</p>

<pre><code> class CTestFinally
  {
      public static void Run()
      {
          try
          {
              TryAndTry();
          }
          catch (Exception exError)
          {
              Console.WriteLine(exError.Message);
          }
          finally
          {
              Console.WriteLine("Finally...!");
          }
          Console.ReadKey();
      }

      static void TryAndTry()
      {
          try
          {
              TryAndTry();
          }
          catch (Exception exError)
          {
              Console.WriteLine(exError.Message);
          }
          finally
          {
              Console.WriteLine("Try: Finally...!");
          }
          }
}
      }
</code></pre>

<p>Finally never executed because we get stack overflow Error.</p>

<p>Are there any circumstances under which the finally block does not get executed other than
above problem?</p>
