Stellen Sie sich vor, dass Sie eine Methode mit der folgenden Signatur haben:Should Guid.Empty Ergebnis in Argumente oder ArgumentOutOfRangeException
public void DoSomething(Guid id)
Wenn Guid.Emtpy
einen unzulässigen Wert darstellt, der Ausnahmetyp es am besten geeignet wäre, zu werfen? ArgumentException oder ArgumentOutOfRangeException?
ich leicht in Richtung Argument gelehnt, da ich nicht glaube, dass alle Guids außer Guid.Empty eine Reihe viel - es ist ein bisschen zu inclusive: Es gibt nur ein Mitglied ausgeschlossen.
Ich bin jedoch in keiner Weise bestimmt, dass dies der Fall sein sollte, also würde ich gerne hören, ob jemand Argumente für die eine oder andere bieten kann?
Ich bin mir bewusst, dass dies hauptsächlich eine semantische Diskussion ist, aber im Interesse eines guten API-Designs würde ich immer noch gerne wissen, ob es klare Fälle für die eine oder andere Option gibt.
Es ist fast so, als ob Ihre Methode eine Art Guid Guide benötigt. –
Vielleicht definieren Sie Ihre eigene ArgumentEmptyException? – yfeldblum
@Justice. Das Hinzufügen eines neuen Ausnahmetyps für ein Szenario, in dem Sie es nie abfangen möchten, ist nicht ratsam. Mark sollte nur einen der vorhandenen Ausnahmetypen werfen. – Steven