在我的 winforms 应用程序中,我在文本框上有一个没有 try/catch的事件:
private void textBoxPassport_Leave(object sender, EventArgs e)
{
dicExsitsManagers[key] = value;
}
我有一个错误,当键是空字符串时会触发此事件,并且我尝试在没有正确键的情况下从字典中获取值。
这个错误不是这里的问题。而且我知道我可以检查密钥是否存在。
在使用 try/catch 的其他函数在表单上执行一些操作之后触发此事件。
在 VS2008 上,这个异常被其他函数的 try/catch 捕获,而在 VS2008 之外启动应用程序时,这个异常根本没有被捕获,并且我收到了未处理异常的 windows 丑陋消息。
为什么 VS2008 在错误的 try/catch 中捕捉到这个未处理的异常?
更新
问题是异常被捕获在错误的位置。当我没有 try/catch 时,我的 VS 不会捕获异常。我曾经看到 VS2008 未处理的异常消息,但在这种情况下不是。