В предыдущих крупномасштабных приложениях, требующих высокой надежности и продолжительного времени работы, я всегда был для проверки аргумента функции указателя, когда он был задокументирован как "никогда не должно быть NULL".Затем я бы выдал исключение std::invalid_argument
или подобное, если бы аргумент на самом деле был равен NULL в C ++ и возвратил бы код ошибки в C.
Однако я начинаю думать, что, возможно, лучше простопусть приложение немедленно взорвется при первом разыменовании нулевого указателя в той же функции - тогда файл аварийного дампа покажет, что произошло, - и позволит тщательному процессу тестирования найти неправильные вызовы функций.
Одна проблема с не проверка на NULL и разрешение взрыва приложения, заключается в том, что если указатель на самом деле не разыменовывается в этой функции, а хранится для последующего использования, то разыскивание разыскивания будет вне контекста и будет намного сложнеедля диагностики.
Есть какие-нибудь мысли или лучшие практики по этому поводу?
Редактировать 1: Я забыл упомянуть, что большая часть нашего кода - это библиотеки для сторонних разработчиков, которыеможет знать или не знать о нашей внутренней политике обработки ошибок.Но функции по-прежнему задокументированы правильно!