我有一个表格
的代码表单为空。
没有按钮,因此没有名为b1的按钮。
这段代码崩溃了,但奇怪的是它没有例外。
我知道它崩溃了,因为它没有到达MessageBox.Show行。
private void Form1_Load(object sender, EventArgs e) {
Control[] controlsreturned = this.Controls.Find("b1", false);
MessageBox.Show(controlsreturned.Length.ToString()); //0
controlsreturned[0].ToString(); // intentional crash to demonstrate issue
MessageBox.Show("reached here?"); // is not reached! but no exception thrown!
}
作为测试,可以尝试添加Button b1 = new Button(); b1.Name = "b1"; this.Controls.Add(b1);
然后它不会崩溃。
但我的观点是,为什么当它崩溃时它不会抛出异常,它只会非常安静地崩溃。程序继续运行..没有抛出异常。对于更大的程序来说,这当然是一个稍大的不便,因为它使调试工作更加繁琐。但我用一个小例子来证明。