gpt4 book ai didi

c++ - 如何清除为自定义异常分配的内存

转载 作者:行者123 更新时间:2023-11-28 08:33:56 24 4
gpt4 key购买 nike

我有一个自定义的异常类。说类 CustomExcep{};

我的应用程序是一个由 C++ 构成的中间件。它是一个webservice,用于基于Java的web前端和DCE后端之间的通信。

每当 DCE 后端未运行或由于某些核心转储而关闭时,应用程序将抛出 CustomExcep。

是这样的。

CustomExcep * exc = new CustomExcep();扔exc;

我无法为此使用堆栈内存,因为它会导致一些运行时异常。

我需要一个解决方案来清除此 CustomException 使用的内存。我们可以为此目的使用模板吗?

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

使用 static 关键字预分配异常。

static const CustomExcep e;
throw e;

"new"运算符的 Microsoft VC++ 实现使用了这种技术。通过使用 static 关键字,在整个应用程序生命周期中只会创建一个异常,然后在每次调用中重复使用。这样您就不必担心删除问题。

由于异常的内部处理方式,在处理异常时使用其他方法会更加复杂。通常,除异常(exception)情况外,应避免使用 new。如果我有时间,我会回来进一步解释。

关于c++ - 如何清除为自定义异常分配的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/556683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com