क्या फ़ंक्शंस से 0 या 1 वापस करने के बजाय अपवादों को फेंकना / पकड़ना / पकड़ना और फिर त्रुटियों को संभालने के लिए if / else का उपयोग करना अच्छा अभ्यास है। इस प्रकार, उपयोगकर्ता को समस्या के बारे में सूचित करना आसान बनाता है।
नहीं नहीं नहीं!
अपवाद और त्रुटियों का मिश्रण न करें। अपवाद, अच्छी तरह से, असाधारण हैं। त्रुटियां नहीं हैं। जब आप किसी उपयोगकर्ता को किसी उत्पाद की मात्रा दर्ज करने के लिए कहते हैं, और उपयोगकर्ता "हैलो" में प्रवेश करता है, तो यह एक त्रुटि है। यह अपवाद नहीं है: उपयोगकर्ता से अमान्य इनपुट देखने में कुछ भी असाधारण नहीं है। इनपुट को मान्य करते समय आप गैर-असाधारण मामलों में अपवादों का उपयोग क्यों नहीं कर सकते? अन्य लोगों ने इसे पहले से ही समझाया, और इनपुट सत्यापन के लिए एक वैध विकल्प दिखाया।
इसका अर्थ यह भी है कि उपयोगकर्ता आपके अपवादों की परवाह नहीं करता है , और अपवादों को दिखाना अपरिहार्य और खतरनाक दोनों है । उदाहरण के लिए, SQL क्वेरी के निष्पादन के दौरान एक अपवाद अक्सर क्वेरी को ही प्रकट करता है। क्या आप वाकई इस तरह के संदेश को सभी को दिखाने के लिए जोखिम लेना चाहते हैं?
1 से अधिक चीजें गलत हो सकती हैं, जैसे कि डेटाबेस समस्या, डुप्लिकेट प्रविष्टि, सर्वर समस्या, आदि जब पंजीकरण के दौरान कोई समस्या होती है तो उपयोगकर्ता को इसके बारे में जानने की आवश्यकता होती है।
गलत। एक उपयोगकर्ता के रूप में, मुझे आपके डेटाबेस मुद्दों, डुप्लिकेट प्रविष्टियों आदि को जानने की आवश्यकता नहीं है, मैं वास्तव में आपकी समस्याओं की परवाह नहीं करता हूं । मुझे यह जानने की आवश्यकता है कि मैंने एक उपयोगकर्ता नाम दर्ज किया है जो पहले से मौजूद है। जैसा कि पहले ही कहा गया है, मुझसे गलत इनपुट को एक त्रुटि को ट्रिगर करना चाहिए, अपवाद नहीं।
उन त्रुटियों को कैसे आउटपुट करें? ये संदर्भ पर निर्भर करता है। पहले से ही उपयोग किए जाने वाले उपयोगकर्ता नाम के लिए, मैं उपयोगकर्ता नाम के पास एक छोटा लाल झंडा देखना चाहता हूं, यहां तक कि फॉर्म सबमिट करने से पहले, यह कहते हुए कि उपयोगकर्ता नाम पहले से ही उपयोग किया गया है। जावास्क्रिप्ट के साथ, एक ही ध्वज प्रस्तुत करने के बाद दिखाई देना चाहिए।
अन्य त्रुटियों के लिए, आप एक त्रुटि के साथ एक पूर्ण पृष्ठ दिखाएंगे, या उपयोगकर्ता को सूचित करने के लिए एक और तरीका चुनेंगे कि कुछ गलत हो गया था (उदाहरण के लिए एक संदेश जो दिखाई देगा, फिर पृष्ठ के शीर्ष पर दूर हो जाएगा)। सवाल तो प्रोग्रामिंग से उपयोगकर्ता अनुभव से संबंधित है।
प्रोग्रामर के दृष्टिकोण से, त्रुटि के प्रकार के आधार पर, आप इसे विभिन्न तरीकों से प्रचारित करेंगे। उदाहरण के लिए, पहले से ही उपयोग किए गए उपयोगकर्ता नाम के मामले में, AJAX अनुरोध http://example.com/?ajax=1&user-exists=John
यह दर्शाता है कि एक JSON ऑब्जेक्ट लौटाएगा:
- उपयोगकर्ता पहले से मौजूद है,
- उपयोगकर्ता को दिखाने के लिए त्रुटि संदेश।
दूसरा बिंदु महत्वपूर्ण है: आप सुनिश्चित होना चाहते हैं कि जावास्क्रिप्ट अक्षम के साथ फ़ॉर्म सबमिट करते समय और जावास्क्रिप्ट सक्षम के साथ डुप्लिकेट उपयोगकर्ता नाम टाइप करते समय एक ही संदेश दोनों दिखाई दें। आप सर्वर-साइड स्रोत कोड और जावास्क्रिप्ट में त्रुटि संदेश के पाठ की नकल नहीं करना चाहते हैं!
यह वास्तव में Stack Exhange वेबसाइटों द्वारा उपयोग की जाने वाली तकनीक है। उदाहरण के लिए अगर मैं अपने स्वयं के उत्तर को उभारने की कोशिश करता हूं, तो AJAX प्रतिक्रिया में प्रदर्शित करने की त्रुटि होती है:
{"Success":false,"Warning":false,"NewScore":0,"Message":"You can't vote for your own post.",
"Refresh":false}
आप एक अन्य दृष्टिकोण भी चुन सकते हैं, और फ़ॉर्म भरने से पहले HTML पेज में त्रुटियों को निर्धारित कर सकते हैं। पेशेवरों: आपको AJAX प्रतिक्रिया में त्रुटि संदेश भेजने की आवश्यकता नहीं है। विपक्ष: पहुँच क्षमता के बारे में क्या? सीएसएस के बिना पृष्ठ ब्राउज़ करने का प्रयास करें, और आप देखेंगे कि सभी संभावित त्रुटियां दिखाई देंगी।