-1

我知道这个错误已被问过很多次,但我仍然无法找出如何避免空值我将发布代码并指向导致错误的行

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)

那么要么 SvnDataNothing要么中的最后一个元素SvnData是Nothing。

很难说那是哪一个,因为我们对来自哪里一无所知SvnData,但是如果您能够重现问题,您应该能够轻松地通过它进行调试并自己检查值。

一旦你发现了什么是问题值Nothing,你需要找出原因,然后处理这种情况(如果它是合法的)或修复原因(如果它永远不应该Nothing)。

于 2012-08-22T16:54:06.893 回答