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

本文关键字:应用程序 未处理 异常 表单 | 更新日期: 2023-09-27 18:15:51

是否有任何方法可以捕获表单上任何未处理的异常?我不想在一个try catch块中包装数百个表单中的数百个方法。

我有一个基本的形式,每个形式继承。

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

谢谢

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

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

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;
    ....
}