我想从错误发生的单词文档(不是vb.net程序行号)的行号中捕获word文档的错误,我能够得到错误但无法捕获包含错误的行号
我试过了,
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任何人都会帮助我完成所需的逻辑,
提前致谢。
答案 0 :(得分:1)
在异常堆栈跟踪中生成行号是CLR的内置功能。但是,您必须提供将代码地址映射到行号所需的信息。
1)切换到项目的Release配置。 2)项目 - >属性 - >编译标签 - >高级编译选项。 3)将“生成调试信息”设置从pdb-only更改为Full。与您的程序一起部署.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