【发布时间】:2020-12-03 15:11:31
【问题描述】:
我可以捕捉到什么异常类型来检测内存问题?
我想检测 new 何时失败,或 c'tor 的类失败。
catch (Exception &e) 过于宽泛,不仅能捕捉内存问题。
注意:我记得有这种类型但是忘记了,它以std::开头
【问题讨论】:
-
当构造函数失败时,由类来决定它抛出什么。没有通用的“构造函数失败”异常。
-
当
new失败因为它无法分配内存它会抛出std::bad_alloc。它可能由于其他原因而失败,并且没有标准的异常类型。 -
没有基本的
Exception类型。你可能会想到std::exception。这是任何标准异常类型的基础,也可能是第三方异常的基础,但不能保证捕获所有异常。 -
@drescherjm 所以要捕获 ALLOCATION_ERROR 我需要捕获所有内容
-
您添加的代码完全改变了问题。它提出了很多很多关于它打算做什么以及你想要实现什么的问题。
标签: c++ class exception memory