gpt4 book ai didi

c++ - 处理内存不足错误的最佳做法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:13 25 4
gpt4 key购买 nike

我想知道,处理内存不足错误的最佳做法是什么。

void SomeTask()
{
try
{
SomeObj obj = new SomeObj();
}
catch( std::bad_alloc& )
{
// What should be done here?
}


// ... more code ...
}

我觉得静默返回是错误的,因为程序可能会在不确定的状态下运行。那么,这里应该发生什么,我应该让程序崩溃,还是有更好的选择?该程序作为服务运行,所以我不能只弹出一条错误消息。我想如果有足够的内存可以记录一些东西。但是,我只是想知道,您认为在这种情况下我应该怎么做?

谢谢。

最佳答案

因为它是一项服务,所以我会将错误写入系统消息日志。在 Windows 中,您可以使用 Windows Event Log API .除非您在文档中另有说明,否则这可能是系统管理员希望看到故障报告的地方。

此外,在大多数 C++ 编译器中,std::bad_alloc() 已经取代了失败的堆分配的 null 返回值。

-保罗

关于c++ - 处理内存不足错误的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4492034/

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