14 个解决方案
#1
尽量不要在构造函数中做这样的事情,否则失败了操作系统可能都无法处理
#2
new失败属于边缘问题,不需要去管。
非得管你可以重载new防止程序崩溃。比较常用的有stl的new (nothrow)
非得管你可以重载new防止程序崩溃。比较常用的有stl的new (nothrow)
#3
麻烦给个实例
#4
构造函数式可以抛出异常的。
如果你对于构造函数里面 new 不放心的, 你可以加入异常机制。
如果你对于构造函数里面 new 不放心的, 你可以加入异常机制。
#5
如果不加入异常机制,将会造成内存泄露。
#6
CObject::CObject()
{
m_pSubobject = new CSubObject();
try
{
//do something
}
catch(...)
{
delete m_pSubobject;//清理对象
throw ;//抛出异常
}
}
{
m_pSubobject = new CSubObject();
try
{
//do something
}
catch(...)
{
delete m_pSubobject;//清理对象
throw ;//抛出异常
}
}
#7
加了异常机制又如何判断构造函数构造失败呢
#8
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
#9
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
#10
是不是其他地方处理赋值出现了问题
#11
如果不加入异常机制,将会造成内存泄露。
加了异常机制又如何判断构造函数构造失败呢
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
灰常感谢
#12
是不是其他地方处理赋值出现了问题
没有,就是想问问如果已经这样做了,又要保证代码的稳定性,该怎么办
#13
是不是其他地方处理赋值出现了问题
没有,就是想问问如果已经这样做了,又要保证代码的稳定性,该怎么办
我帮我同事解决的一个问题,正是由于赋值出了问题,结果出现bad_alloc
#14
如果不加入异常机制,将会造成内存泄露。
加了异常机制又如何判断构造函数构造失败呢
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
灰常感谢
不用谢, 不知道解决你的问题没
#1
在构造函数中new一段内存,失败了怎么处理
尽量不要在构造函数中做这样的事情,否则失败了操作系统可能都无法处理
#2
new失败属于边缘问题,不需要去管。
非得管你可以重载new防止程序崩溃。比较常用的有stl的new (nothrow)
非得管你可以重载new防止程序崩溃。比较常用的有stl的new (nothrow)
#3
new失败属于边缘问题,不需要去管。
非得管你可以重载new防止程序崩溃。比较常用的有stl的new (nothrow)
麻烦给个实例
#4
构造函数式可以抛出异常的。
如果你对于构造函数里面 new 不放心的, 你可以加入异常机制。
如果你对于构造函数里面 new 不放心的, 你可以加入异常机制。
#5
如果不加入异常机制,将会造成内存泄露。
#6
CObject::CObject()
{
m_pSubobject = new CSubObject();
try
{
//do something
}
catch(...)
{
delete m_pSubobject;//清理对象
throw ;//抛出异常
}
}
{
m_pSubobject = new CSubObject();
try
{
//do something
}
catch(...)
{
delete m_pSubobject;//清理对象
throw ;//抛出异常
}
}
#7
如果不加入异常机制,将会造成内存泄露。
加了异常机制又如何判断构造函数构造失败呢
#8
CObject::CObject()
{
m_pSubobject = new CSubObject();
try
{
//do something
}
catch(...)
{
delete m_pSubobject;//清理对象
throw ;//抛出异常
}
}
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
#9
如果不加入异常机制,将会造成内存泄露。
加了异常机制又如何判断构造函数构造失败呢
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
#10
是不是其他地方处理赋值出现了问题
#11
如果不加入异常机制,将会造成内存泄露。
加了异常机制又如何判断构造函数构造失败呢
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
灰常感谢
#12
是不是其他地方处理赋值出现了问题
没有,就是想问问如果已经这样做了,又要保证代码的稳定性,该怎么办
#13
是不是其他地方处理赋值出现了问题
没有,就是想问问如果已经这样做了,又要保证代码的稳定性,该怎么办
我帮我同事解决的一个问题,正是由于赋值出了问题,结果出现bad_alloc
#14
如果不加入异常机制,将会造成内存泄露。
加了异常机制又如何判断构造函数构造失败呢
加了异常后, 在构造函数里面抛出异常阿, 然后捕获异常打印对应信息,不就能得知构造是否失败了吗
灰常感谢
不用谢, 不知道解决你的问题没