在C++中,可以通过异常处理机制来实现开关函数同时拒绝有效和无效答案的功能。异常处理是一种在程序执行过程中检测到异常情况时,跳转到异常处理代码的机制。
首先,你可以定义一个自定义异常类,用于表示无效答案的情况。例如:
class InvalidAnswerException : public std::exception {
public:
const char* what() const throw() {
return "Invalid answer!";
}
};
然后,在开关函数中,根据输入的答案进行判断,如果是无效答案,则抛出自定义异常。如果是有效答案,则执行相应的逻辑。例如:
void switchFunction(int answer) {
if (answer < 0 || answer > 1) {
throw InvalidAnswerException();
}
// 执行有效答案的逻辑
if (answer == 0) {
// ...
} else {
// ...
}
}
在调用开关函数的地方,可以使用try-catch语句来捕获异常并进行处理。例如:
try {
switchFunction(2);
} catch (const InvalidAnswerException& e) {
std::cout << e.what() << std::endl;
}
这样,无论是有效答案还是无效答案,都可以通过异常处理机制来进行拒绝和处理。
领取专属 10元无门槛券
手把手带您无忧上云