异常处理:但不要在catch块中结束
Exception Handling : But do not end up in the catch block
我在函数中得到一个未处理的异常。该函数被调用多次。
try {
unsigned char* b1 = new unsigned char[Length]; //<---here
unsigned char* b2 = new unsigned char[Length];
//do some stuff which doesn't seem to throw an exception...then at the end
delete[] b1;
delete[] b2;
}
catch (...)
{
cout<< "Error..." <<end;
}
问题是,未处理的异常几乎是随机发生的。它在第一个语句时中断。另一个问题是:为什么这没有被发现?Visual Studio停止,我在new.cpp.
我的第三个问题是:我怎样才能找到问题?Length永远不会是一些未初始化的量;一般在512左右
看起来像<<…需要一些内存分配,但它不能这样做。将调试器配置为在抛出异常时中断执行(正如其他人建议的那样),并查看抛出的是什么以及在什么时候抛出。顺便说一句,Sutter写道,您可能根本不应该尝试捕捉内存分配异常——如果没有任何内存分配,很难完成所需的错误报告,而且这些错误很可能会失败,所以为什么要费心呢。(也许你根本不会得到这些异常——虚拟内存&交换是如此美妙的事情…)
相关文章:
- 为什么在这个代码结束循环中没有得到结束
- 试图对缓存进行跨步测试,但程序并没有结束
- 为什么catch中的代码没有被执行
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- catch框架有没有办法比较流或文件
- 为什么擦除方法会影响结束方法
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 删除映射和分割错误中的一个过去结束元素
- 从 Rcpp Catch 测试中获取有关"inst/extdata"的数据
- 如何使用 SFML 在贪吃蛇游戏中定义游戏结束?
- 为什么我的两个 cin 语句没有在程序结束时运行?
- 在函数结束后使用指向变量的指针是否安全?
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- C ++尝试并捕获未结束的程序
- 为什么我的程序在输入某个形状的面积的测量值后没有结束?
- 取消引用结束指针到数组类型的一个
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 结束另一个线程中使用的对象的生存期
- 全局向量导致 C++ 程序结束时出现段错误
- 异常处理:但不要在catch块中结束