Я бы сказал, что это зависит от того, ожидает ли функция , что найдет значение, и это зависит от того, насколько четко и связно ваша функция, и от типа договор он предоставляет клиенту код.
Если допустимо не найти значение, я бы сказал, что возвращение указателя NULL в этом случае является допустимым способом указания клиентскому коду, что значение не может быть найдено.
Если исключительное обстоятельство - не найти значение, и это указывает на то, что что-то не так, возможно, лучше использовать один из следующих подходов:
- Выдает исключение .
- Утверждение в сочетании с возвратом NULL. Самостоятельное утверждение обычно не рекомендуется, так как они (обычно) скомпилированы из сборок Release.
В вашем случае я бы сказал, что возвращение NULL является приемлемым, но, как указано выше, это меняется для каждой ситуации, и здесь нет особого практического правила.