应用程序中发生了无法处理的异常 索引超出范围。必须为非负值并小于集合大小。 程序在运行的时候会出现这个异常 但我在用DEBUG调试的时候却没有 找不出来问题出在哪了 还望高手们赐教~~~ 万分感激~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 索引溢出了,运行时与调试时用的数据可能不一样。DEBUG状态下没溢出。运行时观察到哪一步出错的,在那部分代码里找array, arraylist之类的结构。 try { } catch (Exception error) { //error.StackTrace //error.Source //error.Message } 这个是很常见的问题,我也经常遇到,就是某个数组引起的。 用try{}catch{}功能缩小出错范围,然后就就找找离那出错提示最近的几个数组,最好能用if限定索引范围不要让数组索引超标了。但是如果错误时很难重现的那就很麻烦了 使用数组、ArrayList时,因为上限超过了范围,会出现这样的情况。另外可能是你的数据范围超出了你所定义的范围! 我也遇到过这样的问题,一般是那个数组list[i][j],你这个地方没有数据!比如你的是list[2][2],这个地方没有数据,而你却要读取list[2][2],一般会出这样的错误! 按F5调试,出错的地方就不走了。是不是你写的有扑捉异常的try, “用try{}catch{}功能缩小出错范围”,难道我要在所有出现数组的地方都添加上它么? 不是,你至少先要有概念大致是在那一片或是那个功能块出错,就从哪开始查找。如果你完全不知道, 那就把try{}catch{}定义在程序开始到结束,比如try{}Application.Run(new form1())}catch{Messgbox.show("Error!");然后可以对一个一个功能块用try/catch来排除。很土的方法,还有简单点就是用控制台输出,在你怀疑出错地方,统统加上COnsole.writeline("1"); 当然里面数字是不同的,出错后看看控制台如果只显示到数字9,那么9到10之间出错。try { Application.Run(new Form1()); } catch (Exception er) { MessageBox.Show(er.StackTrace); }试试上面这个也有可能给你指出出错位置,会列出很多错误,第一个就是反正方法很多的,有耐心找出不难。 如何自定义DATATABLE的排序方式 推荐文件数据读取的教程资料 C#中的又是DataGridView控件的问题~~~ c#视频教程,感觉不错,新手们来看看吧~ 请教高手,datagrid不能显示数据啊! 怎样声明类型的实例? HttpWebRequest.GetResponse 在 POST 时总是报 405 错误 怎样遍历所有TextBox控件? 有没有人提供这样的组件?100分相送,不够再加! C#怎么截取图片的一部分 请各位大哥帮我参考一下数据表设计 js如何实现页面跳转到之前打开未关闭的页面?
{ }
catch (Exception error)
{
//error.StackTrace
//error.Source
//error.Message
}
是不是你写的有扑捉异常的try,
try{}Application.Run(new form1())}catch{Messgbox.show("Error!");
然后可以对一个一个功能块用try/catch来排除。很土的方法,还有简单点就是用控制台输出,在你怀疑出错地方,统统加上COnsole.writeline("1"); 当然里面数字是不同的,出错后看看控制台如果只显示到数字9,那么9到10之间出错。
try
{
Application.Run(new Form1());
}
catch (Exception er) { MessageBox.Show(er.StackTrace); }
试试上面这个也有可能给你指出出错位置,会列出很多错误,第一个就是
反正方法很多的,有耐心找出不难。