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

Свойство InnerException

Свойство InnerException указывает на вложенный сбой. Его задают конструктором new Exception("outer", inner). Текст причины читают через InnerException.Message. Самый глубокий элемент ищут через GetBaseException.

Синтаксис

var inner = new Exception("inner"); var outer = new Exception("outer", inner);

Пример

Давайте вывести InnerException.Message:

using System; class Program { static void Main() { try { var inner = new Exception("abcde"); throw new Exception("outer", inner); } catch (Exception ex) { Console.WriteLine(ex.InnerException.Message); } } }

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

"abcde"

Пример

Давайте сравнить Message обёртки и внутреннего сбоя:

using System; class Program { static void Main() { try { var inner = new Exception("12345"); throw new Exception("outer", inner); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.WriteLine(ex.InnerException.Message); } } }

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

"outer" "12345"

Пример

Давайте проверить, что у простого сбоя InnerException равен null:

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

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

True

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

  • метод GetBaseException,
    который доходит до конца цепочки
  • свойство Message,
    которое есть у каждого звена
  • класс Exception,
    конструктор которого принимает inner
  • конструкция catch,
    где читают InnerException
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить