Ste*_*nov 1 c++ crash memory-management
我遇到了一些崩溃delete().我尝试delete()用try-catch 包装并正确处理它,但我仍然崩溃而不是陷入catch部分.
这是我尝试做的示例.
int *i = new int();
delete (i);
try {
delete (i);
}catch (...) {
std::cout << "Oops";
}
Run Code Online (Sandbox Code Playgroud)
问题是"为什么我不能这样抓住它?" 和"我怎么能正确地抓住这样的情况?".
delete运算符不会抛出异常:
例外(无)(直到C++ 11)
noexcept规范:noexcept(自C++ 11起)
cf cppreference.
双删除是编程错误.您不应该尝试处理它:使用调试工具来摆脱它们(以及使用RAII和使用RAII的标准类更好的内存管理)
| 归档时间: |
|
| 查看次数: |
722 次 |
| 最近记录: |