Ist das ein Fehler in Winforms? (Getestet auf beide VS2008 und VS2010)Warum kann das Laden von Formularen keine Ausnahme machen?
private void Form1_Load(object sender, EventArgs e)
{
throw new Exception("Hey");
}
Ich erhalte keine Fehler in diesem Code, vor einer Weile, ich versuche, eine Lösung für diese Frage Parse a number from a string with non-digits in between
zu formulieren und ich diesen Code in 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());
}
Ich frage mich, warum es nicht die Nummer zeigte. Dann auf den Code button1_Click bewegen ...
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());
}
... dann bemerkte ich, dass es ein Fehler: Eingabezeichenfolge war nicht in einem korrekten Format.
Warum Form1_Load keine Ausnahme abfangen, warum es im Hintergrund fehlschlagen? Der Code wird nur aus form1_load um ausgegeben String t = s.ToCharArray(). TakeWhile ...
Ich habe dieses Verhalten auf meinem Win7 SP1 x64-Entwicklungscomputer erfolgreich korrigiert. Siehe [diese Antwort] (http://stackoverflow.com/a/11997142/119527) für wie. –