-1

私のコードは、ArrayIndexOutOfRangeException の未処理の例外を示しています。

    public static DateTime storeTime(String date)
    {
        string[] dateSplit;
        string[] timeSplit;
        DateTime returnValue = new DateTime();

        if (date == "")
            return returnValue;

        dateSplit = date.Split(new Char[] { 'T' });
        timeSplit = dateSplit[1].Split(new Char[] { '+' }); // Exception occurs here.
        timeSplit[0] = timeSplit[0].Substring(0, timeSplit[0].Length - 1);
        returnValue = DateTime.ParseExact(dateSplit[0] + " " + timeSplit[0], "yyyy-MM-dd HH:mm:ss",null);

        return returnValue;

    }
4

1 に答える 1

1

入力パラメーターdateに文字 T が含まれていなかったため、分割の結果は 1 つの要素のみになりました。したがって、dateSplit[1] (2 番目の要素) にアクセスしようとすると失敗します。指定したインデックス 1 は範囲外です。要素が 1 つしかないため、0 のみが許可されます。

これは非常に基本的なエラーであり、自分でこれを検出できるはずなので、おそらく投票されていないことに注意してください。次回は、F5 キーを押してデバッグし、クラッシュの時点ですべての変数を確認して、問題を自分で修正できるようにします。

于 2013-05-23T10:59:47.017 に答える