Почему эта ошибка не может быть поймана? - PullRequest
2 голосов
/ 17 сентября 2010

У меня есть следующий код в моем проекте, deleteselector - это форма, в которой есть представление таблицы данных (с столбцами авторазмера).

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

Задача try заключается в том, что всплывающая форма с сеточным обзором время от времени вызывает исключение invalidoperationexception. Это рекомендуемое решение, см.

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

Ранее я использовал Show на deleteSelector, и обходной путь работал отлично. Теперь, с showdialog кажется, что ошибка больше не перехватывается (я получаю непроверенное сообщение об ошибке). Почему ошибка не перехватывается?

1 Ответ

4 голосов
/ 17 сентября 2010

ShowDialog запускает диалог в отдельном потоке, поэтому исключение создается в другом стеке, чем ваш обработчик исключений.

Я предлагаю вам попытаться найти другой обходной путь - просто поймать InvalidOperationException довольно ужасно, и я не хотел бы поспорить, что форма будет в разумном состоянии впоследствии.

...