一、栈解旋
1、栈解旋引入
C++ 程序 抛出异常后 对 局部变量的处理 : 当 C++ 应用程序 在 运行过程 中发生异常时 , 程序会跳转到异常处理程序 , 并执行一些操作以处理异常 ; 在这个过程中...try 语句块中 被调用的 函数 , 在 函数栈 中分配的 局部变量 , 如果出现异常 , 会将 栈内存 中的所有局部变量 自动析构 ;
抛出异常后 , 从 进入 try 语句块起 , 到 异常被抛出前...fun 函数出现异常 , 会自动释放栈内存中的局部变量 ;
C++ 栈解旋 是一种非常重要的机制 , 它确保程序在异常发生时能够安全退出 , 并释放占用的资源 ;
在编写C++代码时,必须了解和正确使用异常处理机制...在 函数 中 抛出异常
void fun() {
// 定义如下局部变量
// 这些局部变量都在栈内存中
// 如果在 try 代码块中调用该函数出现异常
// 会自动释放栈内存中的局部变量...fun 函数 , 在 fun 中构造 Student 对象 , 抛出异常后 , 首先进行 栈解旋操作 , 释放 fun 函数中的 Student 对象 , 然后进入 catch 分支处理异常 ;
调用构造函数