Second Edition
17.7标准异常用于C + +类标准库的一批异常可以用于我们自己的程序中。从标准异常类开始会比我们尽量自己定义来得快和容易。假若标准异常类不能满足需要,我们可以继承它并添加自己的特定内容。下面的表描述了标准异常:
-
exception是所有标准C + +库异常的基类。我们可以调用
what()
以获得其特性的显示说明。 -
logic_error是由exception派生的。它报告程序的逻辑错误,这些错误在程序执行前可以被检测到。
-
runtime_error是由exception派生的。它报告程序运行时错误,这些错误仅在程序运行时可以被检测到。
-
I/O流异常类ios::failure也由exception派生,但它没有进一步的子类。
下面两张表中的类都可以按说明使用,也可以作为基类去派生我们自己的更为特殊的异常类型。
-
由logic_error派生的异常:
-
domain_error:报告违反了前置条件。
-
invalid_argument:指出函数的一个无效参数。
-
length_error:指出有一个产生超过NPOS长度的对象的企图(NPOS:类型size_t的最大可表现值)。
-
out_of_range:报告参数越界。
-
bad_cast:在运行时类型识别中有一个无效的dynamic_cast表达式(见第18章)。
-
bad_typeid:报告在表达式typeid(*p)中有一个空指针P(运行时类型识别的特性见第18章)。
-
由runtime_error派生的异常:
-
range_error:报告违反了后置条件。
-
overflow_error:报告一个算术溢出。
-
bad_alloc:报告一个存储分配错误。
想要了解更多关于Python标准异常和异常处理的内容,可以参考《Python标准异常和异常处理详解》。如果你对C++异常处理的编程方法感兴趣,不妨阅读《C++编程思想异常处理》以及《C++异常处理的编程方法》。这些资源能为你提供更深入的见解和实用的代码示例,帮助你更好地理解和应用这些概念。
是否想了解Java编程中的异常处理?《Java编程异常处理》也许能给你带来一些启发。对于那些想要在React Native中进行异常处理的开发者,《reactnative异常处理库》将是一个不错的参考。
您可以更全面地掌握异常处理的知识,提升编程技能,并能够在实际项目中灵活应用这些技术。