Подтвердить что ты не робот

Продолжение в отладчике Visual Studio после исключения

Когда я отлаживаю С# -программу, и я получаю исключенное брошенное (либо брошенное кодом, либо созданное каркасом), среда IDE останавливается и возвращает меня в соответствующую строку в моем коде.

Теперь все в порядке.

Затем нажмите "F5", чтобы продолжить. С этого момента он швы, как будто я в бесконечной петле. IDE всегда возвращает меня в строку исключений. Я должен Shift + F5 (прекратить отлаживать/завершать программу), чтобы выйти из него.

Я разговаривал с некоторыми сотрудниками здесь, и они сказали мне, что это случается и с ними.

Что происходит?

4b9b3361

Ответ 1

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

Одна вещь, которую вы можете сделать, это перетащить точку выполнения (желтая линия/стрелка) на предыдущую точку в коде и изменить значения в памяти (используя окна просмотра Visual Studio), чтобы они не вызывали исключение. Затем снова переходите через код 1.

Лучше всего остановить выполнение и устранить проблему, вызывающую исключение, или правильно обработать исключение, если бросок не нужен.

1 Это может иметь непреднамеренные последствия, поскольку вы по существу повторно выполняете какой-либо код (не перематывая выполнение).

Ответ 2

Вероятно, у вас есть опция " Отвязать столбец на необработанных исключениях" в Visual Studio. Когда эта опция находится в Visual Studio, она будет разворачиваться до самого исключения, поэтому нажатие F5 будет продолжать работать в одном и том же исключении.

Если вы отключите опцию Visual Studio, она будет разбита на исключение, но нажатие F5 будет проходить через эту строку.

Эта опция находится в меню Сервис → Параметры → Отладка → Общие.

Ответ 3

Когда среда IDE разбивается на оскорбительную строку кода, она останавливается непосредственно перед выполнением строки, которая генерирует исключение. Если вы продолжите, он снова выполнит эту строку и снова получит исключение.

Если вы хотите пройти мимо ошибки, чтобы узнать, что произошло бы, если бы ошибка не возникла, вы можете перетащить желтую выделенную строку (строка, которая будет выполняться дальше) до следующей строки кода после нарушения один. Разумеется, в зависимости от того, что не удалось выполнить в строке нарушения, ваша программа теперь может находиться в состоянии, которое вызывает другие ошибки, и в этом случае вы не очень много помогли себе и, вероятно, должны исправить свой код, чтобы исключение либо не выполнялось 't происходит или обрабатывается должным образом.

Ответ 4

Как только вы получите исключение, Visual Studio (или любая другая IDE, которую вы могли бы использовать) не позволит вам идти дальше, если исключение не обрабатывается в вашем коде.

Это поведение по дизайну.

Ответ 5

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