這是Winforms中的錯誤嗎?爲什麼表單加載無法捕捉異常?
private void Form1_Load(object sender, EventArgs e)
{
throw new Exception("Hey");
}
我沒有收到任何錯誤代碼(在兩個VS2008和VS2010測試),前一段時間,我想制定這個問題Parse a number from a string with non-digits in between
一個解決方案,我做這個代碼在Form1_Load中:
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("X");
string s = "12ACD";
string t = s.ToCharArray().TakeWhile(c => char.IsDigit(c)).ToArray().ToString();
MessageBox.Show("Y");
int n = int.Parse(t);
MessageBox.Show(n.ToString());
}
我想知道它爲什麼沒有顯示數字。然後在移動代碼的button1_Click ...
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("X");
string s = "12ACD";
string t = s.ToCharArray().TakeWhile(c => char.IsDigit(c)).ToArray().ToString();
MessageBox.Show("Y");
int n = int.Parse(t);
MessageBox.Show(n.ToString());
}
...然後我發現有一個錯誤:輸入字符串的不正確的格式。
爲什麼Form1_Load沒有發現任何異常,爲什麼它會默默地失敗?代碼剛剛退出form1_load string t = s.ToCharArray()。TakeWhile ...
我已經在我的Win7 SP1 x64開發機器上成功地糾正了這種行爲。看[這個答案](http://stackoverflow.com/a/11997142/119527)如何。 – 2012-08-17 00:09:37