我在+
面临一些崩溃。我尝试用try-catch包装delete()
并正确处理它但我仍然崩溃而不是陷入catch部分。
以下是我尝试做的示例。
delete()
问题是“为什么我不能这样抓住它?”和“我怎么能正确地抓住这样的情况?”。
答案 0 :(得分:5)
删除操作符不会抛出异常:
异常(无)(直到C ++ 11)
noexcept specification:noexcept(自C ++ 11起)
cf cppreference。
双重删除是编程错误。您不应该尝试处理它:使用调试工具来摆脱它们(以及使用RAII和使用RAII的标准类更好的内存管理)
答案 1 :(得分:1)
delete是一个无异常操作,所以你将无法捕获它。
答案 2 :(得分:-2)
使用堆栈中的变量来存储变量是否已删除。如果你不能这样做,那么尝试使用realloc而不是delete。