none
Ссылка на объект не указывает на экземпляр объекта RRS feed

  • Вопрос

  • иногда при выполнении следующего кода вызывается исключение с текстом "Ссылка на объект не указывает на экземпляр объекта"

    System.Management.ManagementObjectSearcher man = new System.Management.ManagementObjectSearcher("SELECT LoadPercentage FROM Win32_Processor");
    foreach (System.Management.ManagementObject obj in man.Get())
    {
    Value_set = obj["LoadPercentage"].ToString();
    }

    почему так может происходить? и как этого избежать?!

    4 сентября 2017 г. 9:42

Ответы

  • "то есть если ничего не нашли, то и в цикл мы не должны заходить"

    Не факт. Насколько я вижу, нигде не документировано, что должна вернуться именно пустая коллекция. Посмотрите в возвращаемом ManagementObject свойства Options, Properties и др. Может они помогут понять, что происходит. 

    Вообще, когда ошибка воспроизводится 1 раз из 300, это заставляет думать об аппаратной проблеме. 

    5 сентября 2017 г. 7:50

Все ответы

  • "почему так может происходить?"

    левый операнд операции "." или "[]" равен null

    "как этого избежать?!"

    выяснять с помощью отладчика какая переменная равна null, исправлять это (если возможно), добавлять проверку на null перед использованием переменных

    4 сентября 2017 г. 11:51
  • я понимаю, что иногда obj["LoadPercentage"] == null и поэтому возникает исключение, вопрос в том почему ИНОГДА? ~ 300 раз все выполняется отлично, а потом возникает ошибка, затем опять все хорошо. ведь я делаю запрос с поиском именно LoadPercentage, то есть если ничего не нашли, то и в цикл мы не должны заходить.

    5 сентября 2017 г. 6:24
  • "то есть если ничего не нашли, то и в цикл мы не должны заходить"

    Не факт. Насколько я вижу, нигде не документировано, что должна вернуться именно пустая коллекция. Посмотрите в возвращаемом ManagementObject свойства Options, Properties и др. Может они помогут понять, что происходит. 

    Вообще, когда ошибка воспроизводится 1 раз из 300, это заставляет думать об аппаратной проблеме. 

    5 сентября 2017 г. 7:50