kov*_*rex 2 c++ exception bad-alloc
在我们的应用程序中,我们将任何崩溃记录到包含堆栈跟踪的日志文件中.我们可以使用这些报告来确定崩溃原因.
问题是,我们倾向于在几个地方(实际上很多)捕获std :: exception,这使得在抛出bad_alloc时报告实际上没用,因为堆栈跟踪丢失了.
如何更改行为,所以程序中止而不是抛出bad_alloc?当我们在3个不同的操作系统中编写时,使用3个不同的std实现,改变std本身是我们想要避免的.
Som*_*ude 7
除了重新思考或重新设计以捕捉更多量身定制的异常(我真的推荐),你有两个解决方案:
使用的"无抛出"变种operator new和operator new[].检查返回的空指针,然后中止.
operator new
operator new[]
设置一个new调用的处理程序std::terminate.
new
std::terminate
归档时间:
8 年,3 月 前
查看次数:
82 次
最近记录: