У меня есть эта дискуссия с моим коллегой по поводу этого фрагмента кода:
var y = null;
if (x.parent != null)
y = x.parent.somefield;
Моя точка зрения заключается в том, что в том месте, где находится код, x.parent
не должен быть POSSIBLY равным нулю. И когда это null, у нас есть серьезная проблема, и я хочу это знать! Следовательно, нулевая проверка не должна быть там и исключить исключение нисходящего потока.
Мой коллега говорит, что это защитное программирование. И нулевая проверка гарантирует, что код не нарушит приложение.
Мой вопрос в том, является ли это защитное программирование? Или плохая практика?
Примечание: дело не в том, кто прав. Я пытаюсь извлечь уроки из этого примера.