在C++中,throw
用于抛出异常。它可以用于任何可抛出的类型,包括基本类型、自定义类型和标准库提供的异常类。
throw
语句通常与try
和catch
一起使用,用于异常处理。当程序执行到throw
语句时,会立即中断当前的执行流程,并将控制权转移到最近的catch
块。
语法示例:
throw expression;
expression
可以是任何可抛出的类型,例如整数、浮点数、自定义类型的对象等。
以下是一个简单的示例,演示了throw
的用法:
#include <iostream>
int divide(int a, int b) {
if (b == 0) {
throw "除数不能为0"; // 抛出一个字符串异常
}
return a / b;
}
int main() {
try {
int result = divide(10, 0);
std::cout << "结果: " << result << std::endl;
}
catch (const char* message) {
std::cout << "捕获到异常: " << message << std::endl;
}
return 0;
}
在上面的示例中,divide
函数会检查除数是否为0,如果是0,则抛出一个字符串异常。在main
函数中,我们使用try
块来尝试调用divide
函数,并在catch
块中捕获异常。如果异常被抛出,catch
块将会执行,并打印异常信息。
总结一下,throw
用于抛出异常,catch
用于捕获并处理异常,这是C++中异常处理机制的关键部分。