📜  C++ try catch - C++ (1)

📅  最后修改于: 2023-12-03 14:39:53.518000             🧑  作者: Mango

C++中使用try-catch语句

在C++中,try-catch语句用于捕获和处理异常。当程序中的某些代码出现异常时,程序会跳转到try语句块外的catch语句块。

用法
基本语法
try {
    // 可能会出现异常的代码块
}
catch (异常类型 参数名) {
    // 异常处理代码块
}
示例代码
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cout << "请输入两个数字:" << endl;
    cin >> a >> b;

    try {
        if (b == 0) {
            throw "除数为0了!";
        }
        else {
            cout << "a/b=" << a / b << endl;
        }
    }
    catch (const char* msg) {
        cout << "Error: " << msg << endl;
    }

    return 0;
}

上述代码中使用了try-catch语句捕获了除0异常,当用户输入的b为0时,程序会抛出异常并跳转到catch语句块中进行处理。

多重catch块

当程序中可能会抛出多种类型的异常时,可以使用多个catch块来分别捕获和处理不同类型的异常。

try {
    // 可能会出现异常的代码块
}
catch (异常类型1 参数名1) {
    // 异常处理代码块1
}
catch (异常类型2 参数名2) {
    // 异常处理代码块2
}
catch (...) {
    // 捕获所有类型的异常
    // 异常处理代码块
}
常见的C++异常类

C++中提供了一些常见的异常类,使用这些异常类可以方便程序员捕获和处理异常。

std::exception

所有C++标准库异常的基类。

std::bad_alloc

由于内存不足无法分配所请求的内存时抛出。

std::bad_cast

当试图执行错误的类型转换时抛出。

std::runtime_error

表示运行时错误的异常类。

std::out_of_range

由于访问超出有效范围的值而抛出。

总结

try-catch语句是C++中用于处理异常的一种方法,可以使程序更加健壮、更容易维护。程序员应该在编写代码时预估可能出现的异常情况,并使用try-catch语句来捕获和处理这些异常。