【发布时间】:2011-04-05 19:42:15
【问题描述】:
直到我对 RAII 和堆栈展开的“相互缠绕”(因为没有更好的词)的概念是/完全(如果不是完全)错误的。我的理解是,使用 RAII 可以防止任何/所有资源泄漏——甚至可能是由未处理的异常引起的。
然而,写this test program 并随后偶然发现this article/documentation,让我意识到堆栈展开只会导致启用 RAII 的资源释放在 try 块内启动,而不是自动在外部 /其他范围。
我对这个(新的)理解是否正确?还是我还没有掌握更多的细微差别?有哪位大师想插话吗?任何好的文章/分析/解释(堆栈展开)的指针都会有所帮助/赞赏......
【问题讨论】:
-
标准可以在这里找到:stackoverflow.com/questions/81656/…
标签: c++ exception exception-handling raii stack-unwinding