Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
938 of 1492 menu
◀ ▶

Свойство StackTrace

Свойство StackTrace у перехваченного Exception содержит цепочку методов. Точные номера строк зависят от файла, поэтому в примерах проверяют фрагмент - например, Contains("Main") - или что строка не null сразу после throw.

Синтаксис

string trace = ex.StackTrace;

Пример

Давайте проверить, что в стеке есть Main:

using System; class Program { static void Main() { try { throw new Exception("abcde"); } catch (Exception ex) { Console.WriteLine(ex.StackTrace.Contains("Main")); } } }

Результат выполнения кода:

True

Пример

Давайте убедиться, что StackTrace не null в catch:

using System; class Program { static void Main() { try { Fail(); } catch (Exception ex) { Console.WriteLine(ex.StackTrace != null); } } static void Fail() { throw new Exception("abcde"); } }

Результат выполнения кода:

True

Пример

Давайте проверить, что стек содержит имя метода Fail:

using System; class Program { static void Main() { try { Fail(); } catch (Exception ex) { Console.WriteLine(ex.StackTrace.Contains("Fail")); } } static void Fail() { throw new Exception("12345"); } }

Результат выполнения кода:

True

Смотрите также

  • свойство Message,
    которое идёт рядом со стеком
  • метод ToString,
    куда входит StackTrace
  • оператор throw,
    после которого заполняется StackTrace
  • класс Exception,
    у которого есть StackTrace
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить