-1

このエラーについて何度も尋ねられたことは知っていますが、null 値を回避する方法がまだわかりません。コードを投稿して、エラーの原因となっている行を指します。

Private Sub loadRevFiles()
    ' load all the SVN information for the selected revision.'
    Dim a, b, RevNo, RevDataCnt As Integer
    ReDim filesAtRev(0 To SvnData(SvnData.Length - 1).RevNo)'this line throw the error'

    RevDataCnt = 0

    ' loading all the changes files into datastructure RevsionsReportDataStruct'
    For a = 0 To SvnData.Length - 1
        RevNo = SvnData(a).RevNo
        If RevNo > HeadRev Then Continue For
        For b = 0 To SvnData(a).changedFileNames.Length - 1
            If SvnData(a).changedFileNames(b).Contains(".dcm") Then
                ReDim Preserve RevisionsData(0 To RevDataCnt)
                RevisionsData(RevDataCnt).RevNumber = RevNo
                RevisionsData(RevDataCnt).FileName = SvnData(a).changedFileNames(b)
                RevisionsData(RevDataCnt).FilePathAndName =           SvnData(a).changedPathAndFileNames(b)
                RevisionsData(RevDataCnt).FileAction = SvnData(a).FileAction(b)
                RevisionsData(RevDataCnt).SVNNo = a
                RevDataCnt = RevDataCnt + 1
            End If
        Next
    Next
End Sub

これは、dcm ファイルを読み取るために使用するツールの機能です。変更をコミットするたびに、変更を見つけて、それらすべてを Excel ファイルにエクスポートします。新しいリビジョンを取得しました。何らかの理由で、この機能は、リビジョンの数が少ないが機能しない場合に非常にうまく機能します。リビジョンのファイル数が多い場合はまったく..

あなたの助けは大歓迎です:)

4

1 に答える 1

2

この行がNullReference例外をスローしている場合:

ReDim filesAtRev(0 To SvnData(SvnData.Length - 1).RevNo)

である 、最後の要素が Nothing ですSvnDataNothingSvnData

どこから来ているのか分からないので、どれが原因かを特定するのは困難SvnDataですが、問題を再現できれば、簡単にデバッグして自分で値を調べることができるはずです。

Nothing問題の値がであることがわかったら、その理由を突き止め、そのケースを処理するか (正当な場合)、原因を修正する必要があります (絶対にすべきでない場合Nothing)。

于 2012-08-22T16:54:06.893 に答える