title: Why the form load can't catch exception?
body: <p>Is this a bug in Winforms? (tested on both VS2008 and VS2010)</p>
  
  <pre><code>private void Form1_Load(object sender, EventArgs e)
  {
      throw new Exception("Hey");            
  }
  </code></pre>
  
  <p>I don't receive any error in that code, awhile ago, I'm trying to formulate a solution for this question <a href="https://stackoverflow.com/questions/3204673/parse-number-from-string-value-in-c">Parse a number from a string with non-digits in between</a></p>
  
  <p>And I do this code in Form1_Load:</p>
  
  <pre><code>private void Form1_Load(object sender, EventArgs e)
  {
      MessageBox.Show("X");
      string s = "12ACD";
      string t = s.ToCharArray().TakeWhile(c =&gt; char.IsDigit(c)).ToArray().ToString();
      MessageBox.Show("Y");
      int n = int.Parse(t);
      MessageBox.Show(n.ToString());        
  }
  </code></pre>
  
  <p>I wonder why it didn't show the number. Then on moving the code to button1_Click...</p>
  
  <pre><code>private void button1_Click(object sender, EventArgs e)
  {
      MessageBox.Show("X");
      string s = "12ACD";
      string t = s.ToCharArray().TakeWhile(c =&gt; char.IsDigit(c)).ToArray().ToString();
      MessageBox.Show("Y");
      int n = int.Parse(t);
      MessageBox.Show(n.ToString());        
  }
  </code></pre>
  
  <p>...then I noticed that there's an error: <em>Input string was not in a correct format.</em></p>
  
  <p>Why Form1_Load didn't catch any exception, why it silently fail? The code just exit out of form1_load at <strong>string t = s.ToCharArray().TakeWhile...</strong></p>