2014-01-22 47 views
-1

我想從錯誤發生的地方找到word文檔的行號(不是vb.net程序行號)的字文檔的錯誤,我能夠得到錯誤但無法捕捉包含行號錯誤用它的行號顯示錯誤信息

我已經試過了,

If objDoc.Range.Font.Size = 10 And objDoc.Range.Font.Name = "Arial" Then 
     If objDoc.Range.Font.Color = WdColor.wdColorBlack Then 
     End If 
     MsgBox("ok") 
    Else 
     Dim objWriter As New System.IO.StreamWriter(TextBox1.Text & "\" & "Error.txt", True) 
     objWriter.Write("Error:check font styles" & vbCrLf) 
     objWriter.Close() 
    End If 

在這裏,我能趕上在TXT文件中的錯誤,但不知道如何找到包含錯誤的行號。

Plz任何人都可以幫助我所需的邏輯,

在此先感謝。

回答

1

在異常堆棧跟蹤中生成行號是CLR的一項內置功能。但是,您必須提供將代碼地址映射到行號所需的信息。

1)切換到項目的發佈配置。 2)項目 - >屬性 - >編譯選項卡 - >高級編譯選項。 3)將「生成調試信息」設置從僅限pdb更改爲完整。與您的程序一起部署.pdb文件。

您將獲得由「StackTrace.GetFrame(0).GetFileLineNumber()」中的程序錯誤行號

試試下面的代碼:

Private Sub IntegerValues() 
    Dim abc As Integer = 0 
    Dim xyz As Integer = 1/abc 
    End Sub 

    Private Sub Button1_Click(ByVal sender As System.Object, _ 
    ByVal e As System.EventArgs) Handles SimpleButton1.Click 
    Try 
     IntegerValues() 
    Catch ex As Exception 
     Dim st As New StackTrace(True) 
     st = New StackTrace(ex, True) 
     MessageBox.Show("Line: " & st.GetFrame(0).GetFileLineNumber().ToString, "Error") 
    End Try 
End Sub 
+0

我曾嘗試下面的代碼,但它顯示了錯誤日誌中的錯誤行號 –

+0

請確保您的代碼在「發佈配置模式」下運行,而不是在「調試配置模式」下運行...以及之後的項目 - >屬性 - >編譯選項卡 - >高級編譯選項將「生成調試信息」設置從僅限pdb更改爲完整。還要確保包含在程序文件中的.pdb文件。那麼這段代碼將運行良好。 –

+0

我不會如何包含.pdb文件,你可以幫助我,這也請please..ryry的麻煩,但有點新的這個。 –