c++里catch、throw、try关键字是干什么用的,举几个例子
时间: 2023-11-25 22:08:50 浏览: 75
在C++中,catch、throw、try是异常处理机制的关键字,用于处理程序在运行过程中可能出现的异常情况。下面是这三个关键字的用途和几个示例。
1. try:try关键字用于包含可能会导致异常的代码块。如果在try块中发生异常,程序将跳转到catch块中进行异常处理。
示例:
```c++
try {
// 可能会发生异常的代码
int a = 10 / 0; // 除以0会抛出异常
} catch (...) {
// 异常处理
cout << "发生异常" << endl;
}
```
2. catch:catch关键字用于捕获并处理try块中抛出的异常。catch后面可以跟一个异常类型,表示只捕获该类型的异常。如果不指定异常类型,则可以捕获任何类型的异常。
示例:
```c++
try {
int* arr = new int[10];
arr[11] = 1; // 会抛出越界异常
} catch (const std::out_of_range& e) { // 只捕获越界异常
cout << "越界异常:" << e.what() << endl;
} catch (...) {
cout << "其他异常" << endl;
}
```
3. throw:throw关键字用于在程序中主动抛出异常。可以抛出任何类型的异常,包括内置类型、自定义类型和标准库类型。
示例:
```c++
int divide(int x, int y) {
if (y == 0) {
throw std::invalid_argument("除数不能为0");
}
return x / y;
}
int main() {
try {
int result = divide(10, 0);
cout << "结果:" << result << endl;
} catch (const std::exception& e) {
cout << "发生异常:" << e.what() << endl;
}
return 0;
}
```
以上就是catch、throw、try关键字的用途和示例。异常处理机制可以帮助我们更好地处理程序在运行过程中可能出现的异常情况,提高程序的稳定性和健壮性。
阅读全文