Исключение первого шанса - PullRequest
3 голосов
/ 25 марта 2009

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

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

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

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

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

Ответы [ 5 ]

2 голосов
/ 25 марта 2009

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

2 голосов
/ 25 марта 2009

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

0 голосов
/ 27 мая 2015

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

AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

, а затем

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

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

0 голосов
/ 25 марта 2009

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

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

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

0 голосов
/ 25 марта 2009

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

...