我正在尝试查看无效索引处的元素来测试我的错误捕获,当我尝试正常运行时,我一直在尝试调试它时出现No Source Available或者我尝试正常运行时出现Unhanded Exception Error:< / p>
#include <iostream>
#include "MyArray.h"
using namespace std;
int main()
{
MyArray<int> arr1;
MyArray<int> arr2(2);
arr2.Add(11);
arr2.Add(22);
arr2.Add(33);
arr2.At(5); // Test to check error
system("pause");
return 0;
}
arr2.At(5);
在MyArray.h文件中调用此函数,我收到错误:
// MyArray.h
template <class elemType>
elemType & MyArray<elemType>::At(int index)
{
if (index < 0 || index >= _size)
throw "elemType & MyArray<elemType>::At(int index) Index out of range!"; // Where the problem is
return list[index];
}
我正常运行时出错:
Unhandled exception at 0x763ec41f in MyArrayProject.exe: Microsoft C++ exception: char at memory location 0x0032fa60..
我尝试在arr2.At(5);
进行调试并遇到throw "elemType & MyArray<elemType>::At(int index) Index out of range!";
时收到错误:
No Source Available
There is no source code available for the current location.
Call stack location:
msvrc100d.dll!_CxxThrowException(void * pExceptionObject, const_s__ThrowInfo) Line 91
以前没有遇到过这个错误,也不确定如何修复它,任何帮助都将不胜感激! :)
答案 0 :(得分:1)
No Source Available只是调试器/ IDE告诉您异常被捕获的位置(或者不是在您的情况下),它没有显示源代码以显示其当前执行的位置。
在您的示例中,您没有捕获它,因此它将位于自动生成的代码的深处(调用main())。
在At(5)调用周围放一个try / catch,它会抓住它(假设你在那里设置了一个断点)。