C++程序为小用户名定义异常,并验证用户名
假设我们有一串用户名,我们必须根据几个条件检查用户名是否有效。所以我们必须定义一个当用户名长度小于5个字符时抛出的异常。我们必须为有效用户名返回“Valid”,为无效用户名返回“Invalid”,并为较小的用户名抛出异常。有效的用户名条件是-
用户名必须是五个字符长
用户名中不应有两个连续的“w”
所以,如果输入像unames=["amit","to","paul_tim","greg_harry","towwer"],那么输出将是[太短:4,太短:2,Valid,Valid,Invalid]因为前两个太小了,最后一个有两个连续的'w'。其他都还好。
示例
让我们看看以下实现以获得更好的理解-
#include#include #include 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 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 << "太短: " << e.what() << '\n'; } } }
输入
{"amit", "to", "paul_tim", "greg_harry", "towwer"}输出结果
太短: 4 太短: 2 Valid Valid Invalid