栈解旋概念:当throw抛出异常后,创建的class类对象就会被析构。
案例:
class Person {
public:
Person() {
cout << "对象构建!" << endl;
}
~Person() {
cout << "对象析构!" << endl;
}
};
//栈解旋概念:当throw y抛出异常后,p1、p2就行进行析构函数。
int divide(int x, int y) {
Person p1, p2;
if (y == 0) {
throw y;
}
return x / y;
}
void test01() {
try {
divide(10, 0);
}
catch (int e) {
cout << "异常捕获!" << endl;
}
}
int main() {
test01();
}
结果: