C++ MS VS 2015中捕捉(非标准?)异常

C++ MS VS 2015中捕捉(非标准?)异常,c++,visual-studio-2015,C++,Visual Studio 2015,我的代码生成外部异常E06D7363并中止。我可以将问题的根源缩小到创建一个类的对象数组(称为CChunk)。语法如下: Array_of_Chunks = new CChunk[i]; 而i是在运行时创建的整数。_块的数组_是另一个类(CDm)的成员变量,在其构造函数中定义为 CChunk *Array_of_Chunks; //private member variable of CDm 新语句是CDm类成员函数的一部分。 为了找出什么样的问题是导致堕胎的原因,我试着去尝试 #inclu

我的代码生成外部异常E06D7363并中止。我可以将问题的根源缩小到创建一个类的对象数组(称为CChunk)。语法如下:

Array_of_Chunks = new CChunk[i];
而i是在运行时创建的整数。_块的数组_是另一个类(CDm)的成员变量,在其构造函数中定义为

CChunk *Array_of_Chunks; //private member variable of CDm
新语句是CDm类成员函数的一部分。 为了找出什么样的问题是导致堕胎的原因,我试着去尝试

#include <exception>
声明。A

catch (const std::exception& e)
语句被忽略。因此,我的理解是,该例外是非标准例外

更进一步,只有当我尝试创建更大的数组(范围为800)时才会抛出exeption


我需要如何确定问题的真正性质的建议。请耐心等待我,我不是一个经验丰富的程序员…

您的visual studio调试器有一个解决方案,用于在出现过多异常情况时中断,包括结构化异常。你可以让它在任何地方都能抓到该死的东西,然后让它帮你抓到。它会把你直接带到罚球点。在调试/异常菜单选项中,异常代码在处理(或)时看起来是一个VisualC++特定的编译器异常。因此,它不是基于标准C++异常层次结构。你最好的解决办法是在调试器中捕获它,以找出更多的信息。它是完全正常的C++异常,由<代码>投掷< /代码>产生。看来你没有把试球/接球放在正确的地方。或者它是由一个图书馆制作的,该图书馆与一个非常古老的CRT版本相连接。使用调试器查看它被抛出的位置。Debug > Windows >异常设置>勾选C++异常复选框。当调试器停止时,查看堆栈跟踪窗口。如果它是一个不可靠的库,那么您可能看不到任何源代码。感谢您迄今为止的帮助。当程序通常被中止时,调试器停止,并出现由调用程序TRNExe.exe触发的CMemoryException。这是否意味着TRNExe.exe导致了问题?或者,即使dll导致问题,是否仍会提及TNRExe.exe?非常感谢。
catch (const std::exception& e)