Как правильно игнорировать исключения при отладке? - PullRequest
0 голосов
/ 30 января 2019

Я устанавливаю свои настройки исключений Visual Studio на разрыв, когда генерируются «исключения общеязыкового времени выполнения».

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

Как я могу предотвратить остановку отладчика при обработке обработанных исключений?(Обратите внимание, я хочу разбить все остальные исключения CLR)

Я думал, что DebuggerStepThrough поможет.Однако это не так.Следующий код останавливается на 'Method1 ();'

using System;

namespace ConsoleApp8
{
    class Program
    {
        static void Main(string[] args)
        {
            Method1();
        }

        [System.Diagnostics.DebuggerStepThrough]
        static void Method1()
        {
            try
            {
                throw new InvalidOperationException();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }
}

- Правка - Кирк - Я выкидываю исключения только в исключительных ситуациях.Я работаю с Visual Studio Tools для Office.Эта библиотека MS часто генерирует исключения, которые можно обрабатывать и игнорировать.

Я хотел бы обработать некоторые исключения, выданные другой библиотекой, но не допустить остановки отладчика VS2017 при возникновении этих ошибок.

Понятно, что эти исключения обычно являются исключениями COM.Я не хочу, чтобы отладчик игнорировал ВСЕ исключения COM.Я только хочу, чтобы отладчик игнорировал исключения COM, которые я перехватил и обработал.

Возможно ли это?

1 Ответ

0 голосов
/ 30 января 2019

Отладчик может прервать выполнение в точке, где выдается исключение, поэтому вы можете проверить исключение до вызова обработчика.В окне «Параметры исключений» («Отладка»> «Windows»> «Параметры исключений») разверните узел для категории исключений, например «Общих исключений времени выполнения».Там вы можете изменить свое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...