Immaginate di avere un metodo con la seguente firma:Qualora Guid.Empty Risultato in ArgumentException o ArgumentOutOfRangeException
public void DoSomething(Guid id)
Se Guid.Emtpy
rappresenta un valore non valido, quale tipo di eccezione sarebbe più appropriato per buttare? ArgumentException o ArgumentOutOfRangeException?
sto leggermente inclinato verso ArgumentException, dal momento che non credo che tutti i GUID tranne Guid.Empty è molto più di una gamma - è un po 'troppo inclusiva: C'è un solo membro escluso.
Tuttavia, non sono in alcun modo determinato che questo dovrebbe essere il caso, quindi mi piacerebbe sapere se qualcuno può fornire argomenti per uno o l'altro?
Sono ben consapevole del fatto che si tratta principalmente di una discussione semantica, ma nell'interesse della buona progettazione dell'API mi piacerebbe comunque sapere se vi sono casi chiari per l'una o l'altra opzione.
È quasi come se il metodo avesse bisogno di una buona Guida. –
Forse definisci la tua ArgumentEmptyException? – yfeldblum
@Justice. Non è consigliabile aggiungere un nuovo tipo di eccezione per uno scenario in cui non si desidera prenderlo. Mark dovrebbe semplicemente lanciare uno dei tipi di eccezione esistenti. – Steven