में चाहिए Guid.Empty परिणाम कल्पना कीजिए कि आप निम्नलिखित हस्ताक्षर के साथ एक विधि है:ArgumentException या ArgumentOutOfRangeException
public void DoSomething(Guid id)
तो Guid.Emtpy
एक अवैध मूल्य है, जो अपवाद प्रकार यह सबसे फेंकने के लिए उपयुक्त होगा का प्रतिनिधित्व करता है? ArgumentException या ArgumentOutOfRangeException?
मैं ArgumentException की ओर थोड़ा झुकाव रहा हूँ, क्योंकि मुझे नहीं लगता कि Guid.Empty को छोड़कर सभी GUIDs एक श्रृंखला के लिए बहुत कुछ है - यह एक सा भी समावेशी है: केवल एक ही बाहर रखा सदस्य है।
हालांकि, मैं कोई रास्ता नहीं निर्धारित किया है कि इस मामले होना चाहिए में हूँ, इसलिए मैं अगर कोई एक या दूसरे के लिए तर्क प्रदान कर सकते हैं सुनना चाहते हैं?
मुझे अच्छी तरह पता है कि यह मुख्य रूप से एक अर्थ चर्चा है हूँ, लेकिन अच्छा एपीआई डिजाइन के हित में मैं अभी भी पता करने के लिए एक या अन्य विकल्प के लिए स्पष्ट मामलों देखते हैं कि क्या करना चाहते हैं।
यह लगभग आपकी विधि को कुछ प्रकार की अच्छी मार्गदर्शिका मार्गदर्शिका की आवश्यकता है। –
शायद अपने खुद के ArgumentEmptyException परिभाषित करें? – yfeldblum
@ जस्टिस। एक परिदृश्य के लिए एक नया अपवाद प्रकार जोड़ना जहां आप कभी इसे पकड़ना नहीं चाहते हैं, सलाह नहीं दी जाती है। मार्क को मौजूदा अपवाद प्रकारों में से एक को फेंक देना चाहिए। – Steven