我知道这个错误已被问过这么多次,但我仍然无法找到如何避免空值我将发布代码并指向导致错误的行
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文件,每当你提交更改时你得到了一个新版本 出于某种原因,当修订版本数量较少但当修订版本的文件数量很高时,此功能工作正常。
非常感谢您的帮助:)
答案 0 :(得分:2)
如果此行抛出NullReference
例外:
ReDim filesAtRev(0 To SvnData(SvnData.Length - 1).RevNo)
然后 SvnData
为Nothing
,或 SvnData
中的最后一个元素为Nothing。
很难说这是什么,因为我们对SvnData
的来源一无所知,但是如果你能够重现问题,你应该能够轻松地通过它进行调试并检查值自己。
一旦你发现Nothing
的问题价值是什么,你需要找出为什么,并处理这种情况(如果它是合法的)或修复原因(如果它永远不应该是Nothing
)。