在表单上捕获未处理的异常(不是整个应用程序)

时间:2011-11-24 13:30:41

标签: c# exception-handling

有没有办法在表单上捕获任何未处理的异常。我不想在try catch块中以数百种形式包装数百种方法。

我确实有一个基本表单,每个表单都继承自。

有没有办法捕获任何未处理的异常?

谢谢

1 个答案:

答案 0 :(得分:0)

我认为没有办法做到这一点。 你只能这样做:

MyForm form = new MyForm();
try
{
    form.ShowDialog();
}
catch (Exception ex)
{
    ...
}

或者您可以使用模式代理(http://en.wikipedia.org/wiki/Proxy_pattern)并为具有ShowDialog方法的表单创建一个类包装器,并在其中进行异常处理。

public class FormProxy<TForm> 
                      where TForm : Form
{
    private TForm _form;
    ....
}