如何在事件方法中捕获异常

时间:2013-03-27 08:35:25

标签: c# winforms exception-handling

当我为TextBox创建LostFocus事件时,会添加NotImplementedException()。我怎么抓住这个例外?我的代码是:

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

被修改

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

4 个答案:

答案 0 :(得分:1)

将其包裹在try/catch

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

答案 1 :(得分:0)

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

订阅Application.ThreadException活动。

在Program.cs中:

Application.ThreadException += OnThreadException


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

答案 2 :(得分:0)

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

但是,如果您想处理未处理的例外情况,可以尝试使用AppDomain或任何其他unhandled exception eventglobal exception handler

答案 3 :(得分:0)

从处理程序本身的中捕获此异常它是荒谬的 - 从调用代码管理它可能是有意义的。但是,看起来你根本就不需要它;鉴于我在其中看到的上下文,它完全没有用处 - 您可以通过删除代码来防止此异常。

您在此块中执行的操作是实现您自己的逻辑。也就是说,你实现它。