字符数组声明抛出空引用异常

时间:2014-05-13 08:57:32

标签: c#

char[] delimiter = { ':' };

上面的行在我的生产服务器上抛出空引用异常,但在我的本地机器上没有问题。请帮我解决这个问题。

相关代码

56           char[] delimiter = { ':' };
57           string[] split = completeString.Split(delimiter);
58           int first = Int32.Parse(split[INDEX1]);
59           string second = split[INDEX2];
60           string third = split[INDEX3];

异常日志表示第56行产生异常。

以下是堆栈跟踪

System.NullReferenceException: Object reference not set to an instance of an object.
  at *****.Method2(String str1, String completeString) in *****\Class2.cs:line 56
  at *****.Method1(String str1, String str2) in *****\Class1.cs:line 117

2 个答案:

答案 0 :(得分:0)

string[] split = completeString.Split(delimiter);

以上一行是抛出此异常。 如果它是任何后续行,则可能是“索引超出范围”异常。

我将假设completeString在您的生产环境中为空。

如果您确定在生产数据库中不是null,那么从数据库中检索值似乎有些困难。

注意:顺便说一下,你应该在防守上编码。将来包括一些空检查。

答案 1 :(得分:-2)

char[] delimiter=new char[]{':'};