Programing/C and CPlusPlus
[C++] Exception overloading
mjune.kim
2019. 2. 25. 16:34
#include#include #include #include using namespace std; /* Define the exception here */ class BadLengthException : public exception { public: BadLengthException(int n) { stringstream ss; ss << n; _msg = ss.str(); } const char *what() const throw() { return _msg.c_str(); } protected: string _msg; }; bool checkUsername(string username) { bool isValid = true; int n = username.length(); if(n < 5) { throw BadLengthException(n); } for(int i = 0; i < n-1; i++) { if(username[i] == 'w' && username[i+1] == 'w') { isValid = false; } } return isValid; } int main() { int T; cin >> T; while(T--) { string username; cin >> username; try { bool isValid = checkUsername(username); if(isValid) { cout << "Valid" << '\n'; } else { cout << "Invalid" << '\n'; } } catch (BadLengthException e) { cout << "Too short: " << e.what() << '\n'; } } return 0; }