如何在event方法中捕获异常

本文关键字:捕获异常 方法 event | 更新日期: 2023-09-27 18:05:59

当我为TextBox创建lostfocus事件时,添加了NotImplementedException()。如何捕获此异常?我的代码是:

void marks_LostFocus(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

编辑

我很抱歉不清楚我想问的问题是,当我创建一个lostFocus事件时,VS会自动添加这一行。学术演讲。我在哪里可以捕获这个异常,它的用途是什么。为什么VS会自动添加这一行

如何在event方法中捕获异常

将try/catch?

void marks_LostFocus(object sender, EventArgs e)
{ 
    try
    {
        throw new NotImplementedException();
    }
    catch(Exception ex)
    {
        // handle ex
    }
}

只有触发事件的方法可以捕获订阅者方法抛出的所有未处理的异常。还有一个备用解决方案,您可以使用:

订阅应用程序。ThreadException事件。

在Program.cs:

Application.ThreadException += OnThreadException

private static void OnThreadException(object sender, ThreadExceptionEventArgs e)
{
    MessageBox.Show(e.Exception.ToString());
}

首先,你可以实现这个方法。

但是如果你想处理未处理的异常,你可以尝试使用AppDomain的未处理异常事件或任何其他全局异常处理程序

在处理程序本身中从捕获这个异常是没有意义的——从调用代码中管理它是有意义的。然而,看起来你根本不需要它;考虑到我所看到的上下文,它完全没有作用——你可以通过删除代码来防止此异常。

你在这个块中所做的是实现你自己的逻辑。也就是说,你实现它。