C++ 标准库

是 C++ 标准库中的一个头文件,它定义了一组标准异常类,用于处理程序运行时的错误情况。

异常是程序运行时发生的错误,它们可以被捕获并处理,以避免程序的非正常终止。 头文件定义了一组从 std::exception 派生的异常类,这些类提供了一种标准的方式来报告和处理错误。

语法

要使用 中的异常类,首先需要包含这个头文件:

#include 

然后,你可以使用这些异常类来抛出和捕获异常。例如:

throw std::runtime_error("An error occurred");

异常类

头文件定义了以下异常类:

  • std::exception:所有标准异常类的基类。
  • std::bad_exception:当异常处理过程中发生错误时抛出。
  • std::bad_alloc:当内存分配失败时抛出。
  • std::bad_cast:当类型转换失败时抛出。
  • std::bad_typeid:当 typeid 操作失败时抛出。
  • std::logic_error:当逻辑错误发生时抛出,例如无效的输入参数。
  • std::domain_error:当函数调用的参数不在有效范围内时抛出。
  • std::invalid_argument:当函数调用的参数无效时抛出。
  • std::length_error:当容器操作因为长度限制而失败时抛出。
  • std::out_of_range:当访问容器的非法索引时抛出。
  • std::overflow_error:当算术运算导致溢出时抛出。
  • std::range_error:当函数返回值不在期望的范围内时抛出。
  • std::underflow_error:当算术运算导致下溢时抛出。

实例

下面是一个使用 的简单示例,演示了如何抛出和捕获异常:

实例

#include
#include

void riskyFunction(int x) {
    if (x 0) {
        throw std::invalid_argument(“Negative value not allowed”);
    }
    std::cout “Processing “ x std::endl;
}

int main() {
    try {
        riskyFunction(1);
    } catch (const std::invalid_argument& e) {
        std::cerr “Caught an exception: “ e.what() std::endl;
    }
    return 0;
}

输出结果:

Caught an exception: Negative value not allowed

在这个示例中,riskyFunction 函数检查传入的参数是否为负数,如果是,则抛出 std::invalid_argument 异常。在 main 函数中,我们使用 try-catch 块来捕获并处理这个异常。

结论

是 C++ 标准库中一个重要的组成部分,它提供了一组标准异常类,使得错误处理更加一致和可预测。通过使用这些异常类,你可以编写更加健壮和易于维护的代码。对于初学者来说,理解异常的基本概念和如何使用 中的异常类是非常重要的。

本文来源于互联网:C++ 标准库