2012-08-22 36 views
-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文件當修訂版本的數量很小但根本沒有工作時修改的文件數量很高..

Yo UR幫助表示高度讚賞:)

+1

爲什麼你在C#中標記這個問題,並且在VB中明顯地顯示它? –

回答

2

如果此行拋出一個異常NullReference

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

然後要麼SvnDataNothingSvnData的最後一個元素是沒有。

很難判斷哪一個是因爲我們對SvnData來自哪裏一無所知,但如果您能夠重現問題,您應該能夠輕鬆地通過它進行調試併爲您自己檢查這些值。

一旦你找到了什麼得到了Nothing問題的值,你需要制定出爲什麼,並且無論是處理這種情況(如果它是合法的)或修復的原因(如果它不應該是Nothing )。

相關問題