title: Out parameters and exceptions
body: <p>Say I have the following code:</p>
  
  <pre><code>    static void Fjuk(out string str)
      {
          str = "fjuk!";
          throw new Exception();
      }
  
      static void Main(string[] args)
      {
          string s = null;
          try
          {
              Fjuk(out s);
          }
          catch (Exception)
          {
              Console.WriteLine(s ?? "");
          }
      }
  </code></pre>
  
  <p>When I test it, <code>s</code> has been initialized to "fjuk!" when it's used in the <code>catch</code> block.<br>
  Is this guaranteed by specification or is it implementation dependent? (I have searched the C# 3 spec but couldn't find out myself)</p>