异常处理
在 C++ 中,异常处理是一种允许开发者以更可控的结构化方式处理运行时错误的机制。它有助于将错误处理逻辑与正常程序逻辑分离,使代码更易理解,更易维护。
#include <iostream>
#include <stdexcept>
int divide(int numerator, int denominator) {
if (denominator == 0) {
throw std::runtime_error("Division by zero is not allowed.");
}
return numerator / denominator;
}
int main() {
try {
// 可能引发异常的代码
int numerator = 10;
int denominator = 0;
int result = divide(numerator, denominator);
std::cout << "Result: " << result << std::endl;
} catch (const std::exception &e) {
// 捕获和处理异常
std::cerr << "Exception caught: " << e.what() << std::endl;
}
return 0;
}
try
块包含可能引发异常的代码。如果在 try
块执行期间引发异常,程序将跳转到相应的 catch
块。在此示例中,我们使用 const exception& e
捕获 std::exception
(及其子类)类型的异常。然后使用 what()
成员函数获取异常消息。
throw
语句用于显式抛出异常。在此示例中,如果用户尝试除以零,我们将抛出 runtime_error
异常。
记住,你可以捕获特定类型的异常并对其进行处理,还可以有多个 catch
块来处理更多不同类型的异常。
代码挑战
编写一个 C++ 程序,模拟一个简单的密码验证系统。实现一个名为
validatePassword
的函数,该函数接受表示密码的字符串作为输入,并在密码不符合标准时引发异常。
Loading...
> 此处输出代码运行结果