2015-08-10 2 views
1

При использовании Polly в режиме отладки, если исключение выбрано, Visual Studio переходит в режим отладки при первой попытке. Я ожидал, что исключение будет выбрано только после последней попытки. Есть ли способ изменить это поведение?Использование Polly в режиме отладки

enter image description here

+0

На вашем изображении соответствующий код покрыт. Вы использовали 'Retry'? И даже если так, как вы определили, что всплывающее окно с исключениями в VS не произошло после n-й попытки, вы поставили точку останова перед тем, как исключение будет выбрано и удостовериться, что это был первый раз? Также блок try в коде: есть ли уловка? Если это так, вы не должны видеть всплывающее окно с исключением, если у вас нет конфигурации VS, чтобы разбить первые исключения (установить в меню Debug-> Exceptions ...) –

+0

@FrankJ, Да, есть .Retry (2) after .Handle < >. Это исключение будет сброшено два раза после нажатия кнопки «продолжить». Так оно работает, но не так, как я ожидал. – AsValeO

+1

Хорошо, если он не взорвется полностью после первого раза и идет еще 2 раза, это означает, что у вас установлен VS для «Break on throw» для этого типа исключения. Откройте следующий пункт меню: Отладка-> Исключения ... В окне, которое открывает элементы управления, какие типы исключений ломаются при броске. Однако флажки не являются tristate, то есть только потому, что флажок верхнего уровня не проверен, что все его подэлементы также не отмечены, найдите там исключение DivideByZeroException и убедитесь, что он не установлен! –

ответ

1

с информацией, я подозреваю, что, как указано в моем комментарии, что ваш VS сконфигурирован так, чтобы разорвать на бросок для DivideByZeroException с.

В меню VS найти и открыть debug-> Исключения ...

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

Исключения первого шанса - это когда выбрано исключение get и перед тем, как он будет выглядеть, если есть соответствующий обработчик. Таким образом, даже в конечном итоге более поздние обработанные исключения будут врываться в VS.

Это относится ко всем исключениям, отмеченным в столбце «Брошенный» окна.

К сожалению, флажки не являются тристатными, что означает, что даже если флажок parent не установлен, это не значит, что все его дочерние элементы также не отмечены.

Вы можете найти inquestion исключение в этом окне в разделе:

Common Language Runtime Исключения -> Система ->System.DivideByZeroException.

Убедитесь, что он не установлен.

+0

Хм .. этот флажок снят. Я снял флажок «Только мой код» в разделе «Параметры отладчика», и теперь он работает так, как я ожидал. VS не врывается в отладчик. Я ожидал от этого поведения наоборот. – AsValeO

Смежные вопросы