A volte vedo sviluppatori che utilizzano librerie come Precondizioni di Guava per convalidare i parametri per null all'inizio di un metodo. In che modo è diverso da ottenere NPE durante il runtime poiché si verifica un'eccezione di runtime in entrambi i modi?In che modo l'utilizzo delle librerie controlla i valori null meglio di NPE?
MODIFICA: Se ci sono buone ragioni, gli sviluppatori non dovrebbero utilizzare le librerie per il controllo null su tutti i metodi?
Potrebbe essere che se controlli in anticipo non hai ancora lavorato, il lavoro che potresti dover ripristinare o lasciare in uno stato incoerente era un NPE da gettare nel mezzo di detto lavoro? –
Inoltre, è possibile generare un'eccezione con almeno un messaggio significativo per l'utente (almeno molto meglio di una NullPointerException) parametro –
null non sempre porta a NPE immediato. Ad esempio, può essere messo in un campo o raccolta e portare a bachi difficili da investigare –