Как отследить, где в коде ловится выброшенное исключение - Visual Studio - PullRequest
1 голос
/ 09 марта 2020

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

1 Ответ

1 голос
/ 10 марта 2020

Вы можете использовать мой Runtime Flow для некоторой помощи.

Например, при запуске следующей программы:

class Program
    {
        static void bar()
        {
            throw new ApplicationException("");
        }

        static void foo()
        {
            bar();
        }

        static void Main(string[] args)
        {
            try
            {
                foo();
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }

Создает следующий результат мониторинга:

enter image description here

Вы можете видеть, как исключение выдается из метода bar, затем из метода foo, а не выбрасывается (перехватывается) в Main.

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