Исключение при первом шансе

Я просмотрел справочные документы MSDN, чтобы получить представление о Visual Basic. После опробования примера с использованием таймеров --one перетаскивает компонент метки и таймера в конструктор и добавляет следующее в подпрограмму компонентов

Label1.Text = My.Computer.Clock.LocalTime.ToLongTimeString

Вывод для немедленного окна во время отладки следующий

Первое случайное исключение типа System.InvalidCastException произошло в Microsoft.VisualBasic.dll
Первое случайное исключение типа System.InvalidCastException произошло в Microsoft.VisualBasic.dll

Та же ошибка возникает в предыдущем примере MSDN с использованием компонента контекстного меню. Следует ли мне Try...Catch...Finally эту ошибку и попробовать двигаться дальше? Или я имею дело с чем-то более серьезным?


person Bray M.    schedule 25.03.2009    source источник
comment
Ржу не могу. Вы живете в мире с несколькими часовыми поясами, друг мой!   -  person Jonathan Parker    schedule 25.03.2009


Ответы (5)


Когда вы видите что-то о первом вероятном исключении, это означает только то, что исключение было обнаружено в коде, который вы вызвали, но не обязательно означает, что код не удался. Если код запускается без сбоя вашей программы и возвращает допустимое значение, то проблем нет. Вы также увидите вывод в окне отладки об исключениях первого шанса, когда вы реализуете свои собственные блоки try / catch.

person Zach Johnson    schedule 25.03.2009

В меню «Отладка» -> «Исключения» вы можете разрешить отладчику останавливаться при первом вызове исключения, даже если оно будет обнаружено позже; если вы хотите узнать, что происходит, это самый простой способ сделать это

person Ana Betts    schedule 25.03.2009

В случае первого исключения изучите детали исключения. Вы должны увидеть свойство кадра / трассировки стека. Там вы должны увидеть, в какой строке произошла ошибка. Это должно вам помочь.

person Preet Sangha    schedule 25.03.2009

В среде IDE попробуйте перейти в «Инструменты»> «Параметры»> «Проекты и решения»> «По умолчанию для VB» и установите для параметра «Строгое» значение «Вкл.» - это может помочь выявить проблемы с преобразованием при компиляции проекта, а не при его запуске.

«Первое исполнение» не обязательно означает, что у вас есть проблема в вашем коде. Это может означать, что IDE, компилятор или любой другой задействованный компонент обнаружил и обработал ошибку, и в этом процессе отладчик уведомляется, а исключение передается в непосредственное окно. Это отличный пост по теме:

http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx

person Gary.Ray    schedule 25.03.2009

Быстрое и простое решение для отладки и диагностики исключения первого шанса:

AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

а потом

private void CurrentDomainOnFirstChanceException(object sender, FirstChanceExceptionEventArgs firstChanceExceptionEventArgs)
    {
        if (firstChanceExceptionEventArgs.Exception is NullReferenceException)
        {
            // do your handling and debugging :)
        }
    }

Множественные исключения First Chance Exception во время выполнения могут снизить производительность вашего приложения, поскольку обработка исключений является дорогостоящей. Особенно в веб-приложениях. Вы можете добавить этот обработчик и посмотреть на конкретные исключения первого шанса и попытаться избежать / исправить их.

person Ognyan Dimitrov    schedule 27.05.2015