可能是重复问题:
在堆栈上抛出对象异常,使用new会导致内存泄漏吗?
在C++中,你是使用new
运算符还是不使用来抛出异常呢?因为这两种方式都可以抛出异常。
void KillUnicorns()
{
throw IllegalActionException();
}
int main()
{
try
{
KillUnicorns();
}
catch (IllegalActionException e)
{
// Handle exception
}
return 0;
}
尽管下面的示例会泄漏内存?
void KillUnicorns()
{
throw new IllegalActionException();
}
int main()
{
try
{
KillUnicorns();
}
catch (IllegalActionException* e)
{
// Handle exception
}
return 0;
}
什么是在C++中抛出异常的正确方式?
const IllegalActionException &e
和IllegalActionException const& e
能够达到相同的结果吗?就像 @Martin 的评论中所看到的那样。 - Kevin