07C++标准异常类库的使用
1 所有C++异常类库的关系图
可以看到,所有的异常基类为exception,所以我们捕获异常时一般只写exception即可,图下面五个代表头文件,与上面的异常颜色相对应。
2 使用C++标准异常类库
#include<iostream>
#include<exception>
using namespace std;
class Person {
public:
Person(int age) {
if (age < 0 || age >100) {
throw out_of_range("年龄越界.");
}
this->m_age = age;
}
// 类成员没有指针类型 我就没写拷贝构造和等号运算符
private:
int m_age;
};
int main(){
try {
Person(101);
}
catch(exception &e){ // 一般都用父类接 不会直接用out_of_range 且最好用引用接收匿名对象out_of_range
cout << e.what() << endl;
}
return 0;
}