我有两种形式。我的第一个表单上有一个按钮,单击按钮时应加载第二个表单。第二种形式在其Load事件中引发异常。显示第二种形式的代码位于try-catch块中。但是,该try-catch块中没有捕获异常,当我单击按钮时,我得到一个“未处理的异常”窗口。这是代码:
public partial class FirstForm : Form
{
private void button_Click(object sender, EventArgs e)
{
try
{
// Showing this form will throw an exception
SecondForm form = new SecondForm();
form.Show();
}
catch (Exception ex)
{
// The exception is not caught here
MessageBox.Show(ex.ToString());
}
}
}
public partial class SecondForm : Form
{
// Throw an exception when this form is shown
private void form_Load(object sender, EventArgs e)
{
throw new Exception("something");
}
}
为什么我的代码中没有捕到异常?
答案 0 :(得分:0)
当您显示第二个表单时,可以使用ShowDialog(this)而不是Show方法,以使第一个表单控制第二个表单。 无论是使用ShowDialog(这个),你都可以使用例外。我认为这个问题已经有了答案here