0

经过多年的编程,我还没有遇到过合理的 malloc 或 new 会失败的情况(可能是因为我的 malloc 真的很合理),尽管我总是检查它。

就我而言,应用程序应该(我希望)通过适当的日志条目优雅地关闭。在这种情况下你会怎么做?听到你的方法很有趣——你是等待资源还是关闭商店?

4

2 回答 2

1

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

于 2012-01-10T12:45:53.350 回答
0

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

于 2011-07-09T22:31:38.057 回答