为什么这个错误没有被抓住?

时间:2010-09-17 09:01:22

标签: c# forms datagridview invalidoperationexception

我的项目中有以下代码,deleteselector是一个包含datagridview(带有autosize列)的表单。

try
{
      if (deleteSelector.ShowDialog() == DialogResult.OK)
      {
      }
}
catch (InvalidOperationException)
{
   //Bug workaround
}

try catch是因为一个带有gridview的弹出窗体偶尔会产生一次invalidoperationexception。这是建议的解决方法,请参阅

http://connect.microsoft.com/VisualStudio/feedback/details/145633/invalidoperationexception-thrown-when-a-form-with-a-bound-datagridview-with-auto-sizing-columns-is-shown

之前,我在deleteSelector上使用了Show,并且解决方法完美无缺。现在,使用showdialog似乎错误不再被捕获(我得到一个未捕获的错误消息)。为什么错误没有被捕获?

1 个答案:

答案 0 :(得分:4)

ShowDialog在一个单独的线程上运行该对话框,因此异常将被抛出到异常处理程序的不同堆栈中。

我建议你尝试找一个不同的解决方法 - 只是抓住InvalidOperationException非常可怕,而且我不想打赌以后表格会处于合理的状态。