title: try-catch-finally order of execution
body: <p>I'm having a problem understanding the order of execution for the try-catch-finally. All the example I've seen (like in:http://stackoverflow.com/questions/4191027/order-of-execution-of-try-catch-and-finally-block) have a very simple "catch" part which print to console. but what happen if I use a "throw" statement in the catch?</p>
  
  <p>The simplest code I could think of which capture the problem:</p>
  
  <pre><code>public class TestClass
  {
      void Foo(int num)
      {
          int answer = 100;
          try
          {
              answer = 100 / num;
          }
          catch (Exception e)
          {
              //Probably num is 0
              answer = 200;
              throw;
          }
          finally
          {
              Console.WriteLine("The answer is: " + answer);
          }
      }
  }
  </code></pre>
  
  <p>If num == 2, then the output will be:  </p>
  
  <blockquote>
    <p>The answer is: 50</p>
  </blockquote>
  
  <p>But what would be printed for num == 0?  </p>
  
  <blockquote>
    <p>The answer is: 100<br>
        The answer is: 200<br>
        No printing at all...</p>
  </blockquote>
  
  <p>or is it just a "undefined behavior"?</p>