用行号显示错误消息

时间:2014-01-22 03:57:50

标签: vb.net visual-studio-2010 visual-studio ms-word

我想从错误发生的单词文档(不是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任何人都会帮助我完成所需的逻辑,

提前致谢。

1 个答案:

答案 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