Как вы препятствуете отладчику VS показывать исключения во время каждого ожидания? - PullRequest
0 голосов
/ 29 октября 2018

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

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Как насчет System.Diagnostics.DebuggerHidden атрибута? Этот атрибут используется, чтобы скрыть метод или свойство от отладчика, что также препятствует тому, чтобы отладчик перехватывал исключение.

[System.Diagnostics.DebuggerHidden]
private static void SecretRun(IEnumerable<int> ints)
{
   foreach (var i in ints)
   {
       try
       {
           if (i < 50) Console.WriteLine("next" + i);
           else throw new Exception("some exception");
       }
       catch
       {
           // Ignored
       }
    }
}

Минусы: Вы не сможете отладить метод, помеченный атрибутом DebuggerHidden.

Чтобы использовать этот атрибут, вам необходимо установить «Включить только мой код» в Tools > Options > Debugging > General

0 голосов
/ 29 октября 2018

Я не уверен, есть ли настройка для того, что вы упомянули. Но если есть конкретная ошибка, которую вы пытаетесь отловить / отладить, вы можете изменить настройки исключений (ctrl + alt + E) и поставить галочку «Общие исключения времени выполнения языка». Это сломается при первоначальной ошибке. Затем просто щелкните правой кнопкой мыши и восстановите настройки по умолчанию.

enter image description here

...