Я думаю, что некоторые могут сделать это намного сложнее, чем то, что запрашивает ОП
Все, что вам нужно сделать, это поместить каждый цепочечный метод в свою собственную строку.
getPerson()
.getParent()
.getSiblings()
.first()
.getName();
И вы получите правильный номер строки, который будет указывать, какой метод используется NPE (предыдущая строка возвращает ноль).
И да, вы можете делать все виды надежной проверки NPE, но иногда в конце днявам нужно просто сделать что-то, а null может быть и не ожидаться, поэтому не приукрашивайте это какой-то другой обработкой ошибок.
Вы также можете предотвратить это, добавив аннотации проверки на объекте и его дочерних элементах. Проверьте объект, а затем перейдите к обходу дерева объектов.Это работало хорошо для меня в прошлом.Это даст вам лучшую автоматическую многократную обработку ошибок.Кроме того, вы документируете, какие методы могут возвращать null.
Говорить о том, что он плохой дизайн для поддержки создания цепочек, я не считаю справедливым, поскольку одна из самых популярных библиотек Javascript (jQuery) использует его постоянно (и да, это так).иногда возвращает нулевые / неопределенные значения).