作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 delete()
遇到了一些崩溃。我尝试用 try-catch 包装 delete()
并正确处理它,但我仍然崩溃而不是掉入 catch 部分。
这是我尝试做的示例。
int *i = new int();
delete (i);
try {
delete (i);
}catch (...) {
std::cout << "Oops";
}
问题是“为什么我不能用这种方式捕捉到它?”以及“我如何才能正确捕捉到这种情况?”。
最佳答案
删除运算符不抛出异常:
Exceptions (none) (until C++11)
noexcept specification: noexcept (since C++11)
比照cppreference .
双重删除是一个编程错误。你不应该尝试处理它:使用调试工具来摆脱它们(以及使用 RAII 和使用 RAII 的标准类更好的内存管理)
关于c++ - 抓双免并妥善处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023364/
我是一名优秀的程序员,十分优秀!