Sono stato uno sviluppatore .NET per oltre un decennio quindi ecco una domanda vergognosa a cui non ho mai saputo la risposta. Capisco - se un argomento è nullo, posso lanciare un ArgumentNullException. Se cerco di dereferenziare un valore nullo, verrà generata una eccezione NullReferenceException.Quale eccezione devo lanciare per un valore nullo imprevisto?
Ma cosa succede se ho il codice come il seguente:
var someVitalObject = someServiceReference.GetVitalObject();
if (someVitalObject == null)
{
throw new IDontKnowWhatException(); // what exception should I throw here?
}
Ora, questo non è necessariamente un problema con il servizio per il quale un'eccezione avrebbe dovuto essere gettato in precedenza.
NullReferenceException? –
È questo un errore nullo nel flusso di esecuzione? Ciò causerà la chiusura della tua app? Forse più contesto ci aiuterà a capire meglio il problema. –
Quindi 'GetVitalObject()' infrange il suo contratto, o è valido per questo restituire null, ma non solo in questo caso? –