Исключение занимает 4 минуты - PullRequest
0 голосов
/ 13 апреля 2011

У меня странная проблема: у меня есть какой-то код, окруженный попыткой .. catch

В сегменте улова я делаю скриншот того, что произошло.

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

Что может быть причиной того, что исключение заняло несколько минут?

Спасибо

Код добавлен:

WaitAndActivateWindow вызывает AutoIT, чтобы сфокусироваться на проблемном окне (метод, вызываемый во всем коде и требующий ~ 0,2 секунды для загрузки.

try
{
    // Load AutoIt defaults.
    LoadDefaults();

    // HandleInstallation();

    // Some more actions here
}
catch (Exception e)
{
    this.WaitAndActivateWindow();
    ScreenShotUtility.TakeScreenShot(@"UnhandledError");

    Log(e.ToString());

    throw;
}

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Маловероятно, что на исключение уходит 4 минуты. На мой взгляд, более вероятно, что задержка вызывается чем-то еще, что высвобождается, когда стек раскручивается до того, как ваше исключение перехватывается.

Я бы заподозрил:

  • Открытые соединения с внешними системами (база данных, сеть и т. Д.)
  • Все, что выпускает коллекцию объектов, которые все разрушаются. Есть ли у этих объектов сложная логика IDisposable, например?

Выполнение кода с помощью отладчика и использование нескольких разумно расположенных точек останова должно быстро сузить проблему. Предложение @ forsvarir относительно захвата меток времени при создании и ловле исключения также помогло бы вам.

0 голосов
/ 13 апреля 2011

Наиболее распространенный для меня случай, когда исключение занимает много времени, это то, что ОС (в моем случае Mac OS X) записывает дамп ядра в файл (у меня настроен Mac для этого).Это одно место, чтобы посмотреть, но я уверен, что есть много других возможностей.(Дополнительная информация в вопросе может быть полезна.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...