आइए पीछे हटें और एक अलग उदाहरण का उपयोग करें जो मानों की एक सरणी के अंकगणितीय माध्य की गणना करता है।
यदि इनपुट ऐरे खाली है (या अशक्त), तो क्या आप कॉलर के अनुरोध को यथोचित रूप से पूरा कर सकते हैं? नहीं, आपके पास क्या विकल्प हैं? खैर, आप कर सकते हैं:
- वर्तमान / वापसी / एक त्रुटि फेंक। त्रुटि के उस वर्ग के लिए अपने कोडबेस के सम्मेलन का उपयोग करना।
- दस्तावेज़ जो शून्य जैसे मान लौटाएगा
- वह दस्तावेज़ जिसे एक निर्दिष्ट अमान्य मान लौटाया जाएगा (जैसे NaN)
- वह दस्तावेज़ जिसे एक जादुई मान लौटाया जाएगा (उदाहरण के लिए एक प्रकार या अधिकतम या कुछ उम्मीद-सूचक मान)
- परिणाम घोषित करना अनिर्दिष्ट है
- घोषित करें कार्रवाई अपरिभाषित है
- आदि।
मैं कहता हूं कि उन्हें त्रुटि दें यदि उन्होंने आपको अमान्य इनपुट दिया है और अनुरोध पूरा नहीं किया जा सकता है। मेरा मतलब है कि पहले दिन से एक कठिन त्रुटि है, ताकि वे आपके कार्यक्रम की आवश्यकताओं को समझें। आखिरकार, आपका कार्य प्रतिक्रिया देने की स्थिति में नहीं है। यदि ऑपरेशन विफल हो सकता है (उदाहरण के लिए फ़ाइल कॉपी करें), तो आपके एपीआई को उन्हें एक त्रुटि देनी चाहिए जिससे वे निपट सकते हैं।
तो यह परिभाषित कर सकता है कि आपका पुस्तकालय विकृत अनुरोधों और अनुरोधों को कैसे संभालता है जो विफल हो सकते हैं।
यह आपके कोड के अनुरूप होना बहुत महत्वपूर्ण है कि यह त्रुटियों के इन वर्गों को कैसे संभालता है।
अगली श्रेणी यह तय करना है कि आपकी लाइब्रेरी कैसे बकवास अनुरोधों को संभालती है। आपके जैसे एक उदाहरण पर वापस जाना - चलो एक फ़ंक्शन का उपयोग करता है जो यह निर्धारित करता है कि क्या फ़ाइल किसी पथ पर मौजूद है bool FileExistsAtPath(String)
:। यदि क्लाइंट खाली स्ट्रिंग पास करता है, तो आप इस परिदृश्य को कैसे संभालेंगे? कैसे एक खाली या अशक्त सरणी के बारे में पारित किया void SaveDocuments(Array<Document>)
? अपने पुस्तकालय / कोडबेस के लिए निर्णय लें, और सुसंगत रहें। मैं इन मामलों की त्रुटियों पर विचार करने के लिए होता हूं, और ग्राहकों को त्रुटियों के रूप में (एक जोर के माध्यम से) झंडी दिखाकर बकवास अनुरोध करने से मना करता हूं। कुछ लोग उस विचार / कार्रवाई का दृढ़ता से विरोध करेंगे। मुझे यह त्रुटि पता लगाने में बहुत मददगार लगी। कार्यक्रमों में मुद्दों का पता लगाने के लिए यह बहुत अच्छा है - आक्रामक कार्यक्रम के लिए अच्छे इलाके के साथ। कार्यक्रम बहुत स्पष्ट और सही हैं (अपने कोडबेस के विकास पर विचार करें), और उन कार्यों के भीतर चक्र न जलाएं जो कुछ भी नहीं करते हैं। कोड का छोटा / क्लीनर इस तरह से होता है, और चेक को आमतौर पर उन स्थानों पर धकेल दिया जाता है जहां समस्या पेश की जा सकती है।