Ми запускаємо систему, і ми іноді отримуємо відомий виняток NullReferenceException
із повідомлення Object reference not set to an instance of an object
.
Однак у методі, де у нас майже 20 об’єктів, журнал, який каже, що об’єкт є нульовим, насправді зовсім не корисний. Це як сказати вам, коли ви є агентом безпеки семінару, що людина серед 100 відвідувачів - терорист. Це вам взагалі не приносить користі. Вам слід отримати більше інформації, якщо ви хочете виявити, хто саме є загрозливою людиною.
Так само, якщо ми хочемо видалити помилку, нам потрібно знати, який об’єкт є нульовим.
Зараз щось одержило мою думку вже кілька місяців, і це:
Чому .NET не дає нам імені, або принаймні типу посилання на об'єкт, який є нульовим? . Ви не можете зрозуміти тип із відображення чи будь-якого іншого джерела?
Крім того, які найкращі практики зрозуміти, який об’єкт є нульовим? Чи слід завжди перевіряти зведеність об'єктів у цих контекстах вручну і записувати результат? Чи є кращий спосіб?
Оновлення:
Виняток The system cannot find the file specified
має таку ж природу. Ви не можете знайти, який файл, поки ви не приєднаєтесь до процесу та не налагодите. Я думаю, ці види винятків можуть стати розумнішими. Чи не було б краще, якби .NET міг сказати нам c:\temp.txt doesn't exist.
замість цього загального повідомлення? Як розробник я голосую так.
new
для створення примірників класу. Коли такий натяк справді допомагає?