C++异常检查
throw (expression)抛出某种类型的异常, try catch语句捕获并处理异常。
throw(expression)
try
{
}
catch()
{
}
1、标准异常头文件
expection头文件,定义最通用的异常类expection。它只报告异常的发生,不提供额外的信息。
stdexcept头文件,定义几种常用的异常类,如下
异常类型 | 异常说明 |
---|---|
exception | 最常见问题 |
runtime_error | 只有在运行时才能检出的问题 |
range_error | 运行时错误:生成的结果超出了有意义的值域范围 |
overflow_error | 运行时错误:计算上溢 |
underflow_error | 运行时错误:计算下溢 |
logic_error | 程序逻辑错误 |
domain_error | 逻辑错误:参数对应的结果值不存在 |
invalide_argument | 逻辑错误:无效参数 |
length_error | 逻辑错误:试图创建一个超出该类型最大长度的对象 |
out_of_range | 逻辑错误:使用一个超出有效范围的值 |
new头文件定义bad_alloc异常类型
type_info头文件定义bad_cast异常类型
bad_alloc、bad_cast、exception对象的初始化不允许提供初始值。其他异常类型需要用string或C风格的字符串初始化类对象,如下2中示例。
2、代码实践
#include <iostream>
#include <exception>
#include <stdexcept>
using namespace std;
int main()
{
int a,b;