[英]Do you always must check for bad_alloc whenever dynamically allocating memory?
如果new找不到足夠的內存,則拋出異常。 我絕對需要檢查嗎? 我從來沒有這樣做,沒有任何問題,但現在我已經讀過你應該這樣做了。 或者僅在某些情況下?
try
{
pPos = new Vector2D(5,1);
}
catch(bad_alloc)
{
// NO MEMORY!
}
bad_alloc
沒有什么特別之處,您可以像其他任何異常一樣捕獲它。 抓住它是不尋常的 。 如果你有某種方法可以從內存不足狀態中恢復,那么你只能這樣做。 但我認為旨在處理內存不足錯誤的程序更常用的是new
的nothrow
版本:
pPos = new (std::nothrow) Vector2D(5,1);
if (!pPos) {
// NO MEMORY!
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.