资源获取失败处理

时间:2011-07-09 22:29:04

标签: exception dynamic-allocation

经过多年的编程,我没有遇到过合理的malloc或者new会失败的情况(也许是因为我的mallocs非常合理),尽管我总是检查它。

在我的情况下,应用程序应优雅地(我希望)以适当的日志条目关闭。在这种情况下你会做什么?听到你的方法很有意思 - 你是在等资源还是关闭商店?

2 个答案:

答案 0 :(得分:1)

我通常会尽可能优雅地关闭程序,并使用简单记录错误消息。在C ++中,我通过catch中的std::bad_alloc main()来实现此目的。到catch执行时,堆栈展开调用的析构函数应该释放一些内存,因此日志记录本身不太可能失败。我在该日志记录代码中避免了内存分配(例如,使用char *字符串而不是std::string字符串),以进一步降低日志记录失败的可能性。

答案 1 :(得分:0)

如果动态分配失败,你几乎无能为力 - 几乎没有编写任何操作来处理这种情况。如果失败,那就让应用程序崩溃。