Натомість, new кидає виняток (наприклад, std::bad_alloc в ситуації браку пам'яті). Так само як і для free, якщо значенням аргументу оператора delete є 0, ані звільнення пам'яті, ані деінціалізація не відбувається (при цьому, подібна ситуація не вважається помилковою).