目录
- 一、程序及输出
- 1.1 系统标准异常示例
- 1.2 标准异常表格
- 二、分析与总结
一、程序及输出
1.1 系统标准异常示例
#include<iostream>
using namespace std;
#include <stdexcept> // std 标准 except 异常
class Person
{
public:
Person(int age)
{
if (age < 0 || age > 150)
{
throw out_of_range("年龄必须在 0 ~ 150之间");
}
else
{
this->m_Age = age;
}
}
int m_Age;
};
void test01()
{
try
{
Person p(151);
}
catch ( exception &e)
{
cout << e.what() << endl;
}
}
int main(){
test01();
system("pause");
return EXIT_SUCCESS;
}
输出:
1.2 标准异常表格
标准异常类 | 用途 |
---|---|
std::exception | 所有标准异常类的基类,定义了一个虚函数 what(),用于返回异常的描述字符串 |
std::bad_alloc | 在动态内存分配失败时抛出的异常 |
std::bad_cast | 在 dynamic_cast 运算失败时抛出的异常。 |
std::bad_exception | 用于处理不在异常规范列表中的异常。 |
std::bad_typeid | 在 typeid 运算失败时抛出的异常。 |
std::logic_error | 逻辑错误异常的基类。 |
std::domain_error | 当参数超出有效域时抛出的异常。 |
std::invalid_argument | 当参数无效时抛出的异常。 |
std::length_error | 当长度超出有效范围时抛出的异常。 |
std::out_of_range | 当访问超出有效范围的元素时抛出的异常 |
std::runtime_error | 运行时错误异常的基类。 |
std::overflow_error | 在数值计算溢出时抛出的异常。 |
std::range_error | 在数值超出有效范围时抛出的异常。 |
std::underflow_error | 在数值计算下溢时抛出的异常。 |
二、分析与总结
系统标准异常使用
1 引入头文件 #include < stdexcept>
2 抛出越界异常 throw out_of_range(“…”)
3 获取错误信息 catch( exception & e ) e.what();