Ho un servizio di Windows con un'interfaccia fluente come questa:
aRequest = Repository.getRequest()
.createProcess()
.validate();
A volte getRequest() potrebbe restituire un valore null e ciò causerebbe un errore in createProcess() . Potrei dividere banalmente getRequest() da createProcess() , ma se non lo farei in che modo dovrei seguire, quale è il modo migliore:
-
Verifica se la richiesta (
this) è nullo e nel caso restituisce null:if(this is null) return nullPotrei fare questo controllo in tutti i metodi accanto a
getRequest(). Alla fineaRequestsarànull. -
Genera un'eccezione se il metodo
createProcess()riceve un valorenull:if(this is null) throw new NullRequestException();
PRO del secondo modo: solo il secondo metodo richiede un controllo, indipendentemente dal numero di metodi nella catena.
CON del primo modo: ogni metodo nella catena ha bisogno di un controllo
Ora la domanda: la seconda è un cattivo uso del concetto di eccezione, poiché potrebbe essere normale l'assenza di richiesta a volte?