处理空异常C#

Nar*_*Dog 6 c# null

好的,新的编码器在这里寻找对这个问题的一点了解.所以我有一个像这样开始的for循环:

for (int i = 0; i < rowHandles.Length; i++)
{
      .........code....
}
Run Code Online (Sandbox Code Playgroud)

rowHandles是一个包含数据行的int数组.此for循环具有在单击删除按钮时删除数据行的代码,具体来说,它是网格工具条删除按钮,这是在删除按钮单击事件处理程序内.问题是当没有行时可以单击删除按钮,因此rowHandles.Length等于null.我该如何阻止这个程序停止?我可以在for循环中,在for循环声明中,还是在for循环之外添加一些内容来纠正这个问题?也许尝试抓住?如何围绕这个特定的问题/循环进行构建?

感谢您的帮助 - 新手编码器

Jar*_*Par 10

如果问题是rowHandles可以,null那么只需添加一个显式检查,以防止您执行该for语句.

if ( rowHandles != null ) { 
  for ( int i = 0; i < rowHandles.Length; i++ ) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

如果没有要删除的行,另一个选项是完全禁用删除按钮.操作无效,因此从一开始就阻止它.

  • @Nard,别觉得自己很傻.错误是最好的学习方式,我们都做了很多. (4认同)

Eri*_*ert 6

这里的一个重要原则是永远不会处理您可能首先要阻止的异常.你永远不应该处理空引用异常; null引用异常表示程序中应该修复的错误,而不是应该被捕获和忽略的预期发生.编写代码以确保该值不为null,或者检测它是否为null并且不取消引用它.