可能重複:
throwing exceptions of objects on the stack, mem leak with new?C++ -The權扔方式捕獲異常
你扔在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'相同的結果?正如@馬丁的評論所見。 – Kevin 2011-04-03 16:02:42
@ Kevin:前綴或postfing到一個類型是一個風格問題(你可以看到周圍)。結果是相同的。 – 2011-04-03 16:23:45