程序在运行的时候会出现这个异常   但我在用DEBUG调试的时候却没有  找不出来问题出在哪了  还望高手们赐教~~~  万分感激~ 

解决方案 »

  1.   

    索引溢出了,运行时与调试时用的数据可能不一样。DEBUG状态下没溢出。运行时观察到哪一步出错的,在那部分代码里找array, arraylist之类的结构。
      

  2.   

    try
                {            }
                catch (Exception error)
                {
                    //error.StackTrace
                    //error.Source
                    //error.Message
                }
      

  3.   

    这个是很常见的问题,我也经常遇到,就是某个数组引起的。 用try{}catch{}功能缩小出错范围,然后就就找找离那出错提示最近的几个数组,最好能用if限定索引范围不要让数组索引超标了。但是如果错误时很难重现的那就很麻烦了
      

  4.   

    使用数组、ArrayList时,因为上限超过了范围,会出现这样的情况。另外可能是你的数据范围超出了你所定义的范围!
      

  5.   

    我也遇到过这样的问题,一般是那个数组list[i][j],你这个地方没有数据!比如你的是list[2][2],这个地方没有数据,而你却要读取list[2][2],一般会出这样的错误!
      

  6.   

    按F5调试,出错的地方就不走了。
    是不是你写的有扑捉异常的try,
      

  7.   

     “用try{}catch{}功能缩小出错范围”,难道我要在所有出现数组的地方都添加上它么?
      

  8.   

    不是,你至少先要有概念大致是在那一片或是那个功能块出错,就从哪开始查找。如果你完全不知道, 那就把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); }
    试试上面这个也有可能给你指出出错位置,会列出很多错误,第一个就是
    反正方法很多的,有耐心找出不难。