Да, это должно вызывать NPE, и Да, вы должны ловить это в методе вызова (или в другом подходящем месте). Наиболее вероятная причина, по которой ваш метод будет возвращать NULL, - это отсутствие записей и правильный способ обработки - генерирование исключения. И идеальное исключение, чтобы сказать кому-то, что у вас нет того, о чем он просил, - это NPE.
Возвращение кода ошибки (например, -1) не годится, потому что:
a) если есть много ошибок, которые вы хотите обработать (например, не можете прочитать DB, можете прочитать DB, но объект не существует в DB, найден объект, но что-то повреждено и т. Д.), То возврат кода ошибки не различает типы ошибок.
b) в будущем, если -1 станет допустимым идентификатором термина, его будет трудно изменить (если вы должны использовать -1, тогда (РЕДАКТИРОВАТЬ: в С) по крайней мере выполните #define ERRORCODE -1 и используйте ОШИБКА везде)