मान लीजिए कि हमारे पास उपयोगकर्ता नामों की एक स्ट्रिंग है और हमें कुछ शर्तों के आधार पर यह जांचना होगा कि उपयोगकर्ता नाम मान्य है या नहीं। इसलिए हमें एक अपवाद को परिभाषित करना होगा जो तब फेंका जाता है जब उपयोगकर्ता नाम की लंबाई 5 वर्णों से कम हो। हमें वैध उपयोगकर्ता नाम के लिए "मान्य" वापस करना होगा, अमान्य उपयोगकर्ता नाम के लिए "अमान्य" और छोटे उपयोगकर्ता नामों के लिए अपवाद फेंकना होगा। मान्य उपयोगकर्ता नाम शर्तें हैं -
-
उपयोगकर्ता नाम पांच वर्णों का होना चाहिए
-
उपयोगकर्ता नाम में लगातार दो 'w' नहीं होने चाहिए
इसलिए, यदि इनपुट unames =["amit", "to", "paul_tim", "greg_harry", "towwer"] जैसा है, तो आउटपुट [बहुत छोटा:4, बहुत छोटा:2, मान्य, मान्य होगा , अमान्य] क्योंकि पहले दो बहुत छोटे हैं, और अंतिम में लगातार दो 'w' हैं। अन्य ठीक हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
BadLengthExcaption नामक अपवाद को परिभाषित करें
-
यह संदेश की लंबाई लौटाएगा
-
फ़ंक्शन सत्यापन () को परिभाषित करें, यह u_name लेगा,
-
isValid :=true
-
n :=u_name का आकार
-
अगर n <5, तो:
-
एक BadLengthException (n) फेंकें
-
-
प्रारंभ करने के लिए मैं:=0, जब मैं
-
अगर u_name[i] 'w' के समान है और u_name[i + 1] 'w' के समान है, तो:
-
isValid :=false
-
-
-
वापसी वैध है
-
मुख्य विधि से निम्न कार्य करें:
-
सभी उपयोगकर्ता नाम u_name के लिए unames में, करें
-
मान्य करें (u_name)
-
यदि मान्य प्रिंट मान्य है
-
अन्यथा जब अमान्य प्रिंट INVALID
-
अन्यथा जब लंबाई छोटी हो तो प्रिंट बहुत छोटा होता है
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <iostream> #include <vector> #include <exception> using namespace std; class BadLengthException{ public: int x; BadLengthException(int n) { x=n; } int what() const throw(){return x;} }; bool validation(string u_name) { bool isValid = true; int n = u_name.length(); if(n < 5) { throw BadLengthException(n); } for(int i = 0; i < n-1; i++) { if(u_name[i] == 'w' && u_name[i+1] == 'w') { isValid = false; } } return isValid; } int main() { vector<string> unames = {"amit", "to", "paul_tim", "greg_harry", "towwer"}; for(int i = 0; i < unames.size(); i++){ string u_name = unames[i]; try { bool isValid = validation(u_name); if(isValid) { cout << "Valid" << '\n'; } else { cout << "Invalid" << '\n'; } } catch (BadLengthException e) { cout << "Too short: " << e.what() << '\n'; } } }
इनपुट
{"amit", "to", "paul_tim", "greg_harry", "towwer"}
आउटपुट
Too short: 4 Too short: 2 Valid Valid Invalid