यह निर्भर करता है कि इनपुट कुछ यूआई के माध्यम से उपयोगकर्ता से सीधे है, या यह सिस्टम से है।
एक UI के माध्यम से इनपुट
यह एक उपयोगकर्ता अनुभव का सवाल है कि अमान्य इनपुट को कैसे संभालना है। मैं आपके विशिष्ट मामले के बारे में नहीं जानता, लेकिन सामान्य तौर पर कुछ विकल्प हैं:
- उपयोगकर्ता को त्रुटि के लिए चेतावनी दें और उपयोगकर्ता को आगे बढ़ने से पहले इसे ठीक करें (सबसे आम)
- स्वचालित रूप से मान्य श्रेणी (यदि संभव हो) में कनवर्ट करें, लेकिन उपयोगकर्ता को परिवर्तन के लिए सचेत करें और उपयोगकर्ता को आगे बढ़ने से पहले सत्यापित करने की अनुमति दें।
- चुपचाप मान्य श्रेणी में परिवर्तित करें और आगे बढ़ें।
चुनाव आप उपयोगकर्ताओं की अपेक्षाओं पर निर्भर करता है और डेटा कितना महत्वपूर्ण है। उदाहरण के लिए, Google स्वचालित रूप से प्रश्नों में वर्तनी को ठीक कर देता है, लेकिन यह कम जोखिम है क्योंकि एक अनचाहा परिवर्तन एक समस्या नहीं है और इसे ठीक करना आसान है (और फिर भी परिणाम पृष्ठ पर यह स्पष्ट किया जाता है कि क्वेरी बदल गई थी)। दूसरी ओर, यदि आप एक परमाणु मिसाइल के लिए निर्देशांक में प्रवेश कर रहे हैं, तो आप अधिक कठोर इनपुट सत्यापन और अवैध डेटा का कोई मूक सुधार नहीं चाहते हैं। तो कोई सार्वभौमिक उत्तर नहीं है।
सबसे महत्वपूर्ण बात, आपको विचार करना चाहिए कि क्या इनपुट को सही करने से उपयोगकर्ता के लिए भी लाभ होता है। उपयोगकर्ता अवैध डेटा क्यों दर्ज करेगा? यह देखना आसान है कि कोई व्यक्ति वर्तनी की त्रुटि कैसे कर सकता है, लेकिन -185 के देशांतर में कोई क्यों प्रवेश करेगा? यदि उपयोगकर्ता वास्तव में +175 का मतलब होता है, तो वे संभवतः +175 टाइप करेंगे। मुझे लगता है कि यह सबसे अधिक संभावना है कि एक अमान्य देशांतर बस एक टाइपिंग त्रुटि है, और उपयोगकर्ता का अर्थ है -85 या कुछ और। इस मामले में चुपचाप धर्मान्तरित करना बुरा और अशुभ है । आपके लिए ऐप के लिए सबसे अधिक उपयोगकर्ता के अनुकूल दृष्टिकोण संभवतः उपयोगकर्ता को अमान्य मान के लिए सचेत करना होगा, और उपयोगकर्ता को इसे स्वयं सही करना होगा।
एक एपीआई के माध्यम से इनपुट
यदि इनपुट किसी अन्य सिस्टम या सबसिस्टम से है, तो कोई प्रश्न नहीं है। आपको एक अपवाद फेंक देना चाहिए। आपको कभी भी अमान्य इनपुट को किसी अन्य सिस्टम से परिवर्तित नहीं करना चाहिए, क्योंकि यह सिस्टम में कहीं और त्रुटियों को मास्क कर सकता है। यदि इनपुट "सही" है, तो यह UI परत में होना चाहिए, सिस्टम में गहराई से नहीं।