अध्याय: विधि डिजाइन
आइटम 49: पैरामीटर की वैधता जांचें
- पैरामीटर्स पर प्रतिबंध:
विधियों और कंस्ट्रक्टरों में आम तौर पर पैरामीटर मानों पर प्रतिबंध होता है (उदाहरण के लिए, गैर-नकारात्मक सूचकांक, गैर-शून्य संदर्भ)।
इन प्रतिबंधों को विधि की शुरुआत में प्रलेखित और सत्यापित किया जाना चाहिए।
- सत्यापन का महत्व:
विधि में अप्रत्याशित विफलताओं या गलत व्यवहार से बचने के लिए त्रुटियों का यथाशीघ्र पता लगाएं।
जो विधियाँ अपने मापदंडों की जाँच नहीं करती हैं, वे कठिन-से-डीबग क्रैश का कारण बन सकती हैं।
- अपवाद दस्तावेज़ीकरण:
बाधा उल्लंघन के मामले में अपवादों को दस्तावेजित करने के लिए @throws Javadoc टैग का उपयोग करें।
सामान्य अपवाद: IllegalArgumentException, IndexOutOfBoundsException, NullPointerException.
पैरामीटर जांच उदाहरण:
public static int mod(int x, int y) { if (y- ऑब्जेक्ट्स का उपयोग.requireNonNull:
जावा 7 में पेश किया गया, इसका उपयोग वस्तुओं की अशक्तता की जांच करने के लिए किया जाता है।
सत्यापन के बाद पारित मूल्य लौटाता है:this.m = Objects.requireNonNull(m, "Parâmetro 'm' não pode ser nulo");- रेंज चेक (जावा 9):
सूचियों और सरणियों में अनुक्रमणिका की जाँच के लिए checkFromIndexSize, checkFromToIndex, और checkIndex विधियाँ।
कम लचीला, मुख्य रूप से संग्रह के लिए उपयोग किया जाता है।
**
assert x > 0 : "Valor de x deve ser positivo";
- विशेष स्थितियां:
बिल्डरों को बाद में उपयोग के लिए हमेशा संग्रहीत मापदंडों की वैधता की जांच करनी चाहिए।
महंगे चेक के लिए अपवाद बनाए जा सकते हैं, जहां गणना के दौरान चेक अंतर्निहित होता है।
- अंतर्निहित सत्यापन उदाहरण:
Collections.sort(List) मानता है कि वस्तुएं परस्पर तुलनीय हैं। सत्यापन छँटाई प्रक्रिया के दौरान होता है।
- अपवादों का अनुवाद:
जब अंतर्निहित जाँच गलत अपवाद फेंकती है, तो सही अपवाद फेंकने के लिए "अपवाद अनुवाद" का उपयोग करें।
- प्रतिबंधों में लचीलापन:
तरीकों को यथासंभव सामान्य बनाया जाना चाहिए और आवश्यकतानुसार कम से कम प्रतिबंध लगाए जाने चाहिए।
- निष्कर्ष:
विधियों और कंस्ट्रक्टरों पर पैरामीटर वैधता जांच को दस्तावेजित और कार्यान्वित करें। भविष्य की त्रुटियों से बचने और डिबगिंग की सुविधा के लिए अभ्यास आवश्यक है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3