3
我使用下面的代碼來訪問VSS項目:不能趕上收到COMException(vb.net)
Dim sItem As String = "$/MyVssProject/InexistentFile.txt"
Dim oItem As SourceSafeTypeLib.VSSItem = Nothing
Try
oItem = m_oSourceSafe.VSSItem(sItem)
Catch ex As Runtime.InteropServices.COMException
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation)
End Try
我所面臨的問題是,當我試圖讓一個實例是沒有一個文件存在於VSSDB中,從而導致COMException,這基本上不會成爲問題(我期望)。 實際上發生了異常,但調試遊標停留在「oItem = m_oSourceSafe.VSSItem(sItem)」行上,而不是處理catch代碼,顯示一個標題爲「COMException越過本機/管理邊界的對話框」。
?從這裏執行不繼續,直到我sItem的內容更改爲現有的文件
爲什麼異常不會被抓到了,我怎麼能實現它
環境:VS2010與WinXP SP3上的.Net 2.0 x86
謝謝隊友!
嗯,這很不尋常。而且相當致命,CLR無法從COM服務器恢復拋出硬異常而不是返回錯誤代碼。你根本沒有記錄實際的異常細節,所以這個問題是無法回答的。通常的建議適用:不要使用VSS。 – 2012-02-24 10:02:05
Sry認爲這是自欺欺人的:檢索「InexistingFile.txt」失敗,因爲它不存在。 不使用VSS不是一種選擇;不會自願做 - 客戶的決定/遺產代碼) – 2012-04-16 11:09:19