How to use Stacktrace to return Error Line Number in vb.net

后端 未结 7 1114
名媛妹妹
名媛妹妹 2021-02-05 20:08

I am trying to create some sort of error catching method that will return the error line number. We have an abort email that is sent out when a process aborts that gives us the

7条回答
  •  旧时难觅i
    2021-02-05 20:44

    I have adapted an example from other forum, in my case, I wasn't getting the line number where the error was caused, so I started playing around and found a solution, the code is as follows:

    Public Class Form1
        Private Sub a2()
            Dim b As Integer = 0
            Dim a As Integer = 1 / b
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
            Try
                a2()
            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
    End Class
    

    In this example, line 4 will trigger the error exception, but once I applied the principle in a real life application, line was 0, so I started playing with the index in the GetFrame property, it ranges from 0 to 4, when I put 4 in the object, EUREKA, I got the line number causing the problem.

提交回复
热议问题