Saltar al contenido

Cómo usar Stacktrace para devolver el número de línea de error en vb.net

Agradecemos tu apoyo para difundir nuestros enunciados referente a las ciencias informáticas.

Solución:

He adaptado un ejemplo de otro foro, en mi caso, no estaba obteniendo el número de línea donde se produjo el error, así que comencé a jugar y encontré una solución, el código es el siguiente:

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

En este ejemplo, la línea 4 activará la excepción de error, pero una vez que apliqué el principio en una aplicación de la vida real, la línea era 0, así que comencé a jugar con el índice en la propiedad GetFrame, varía de 0 a 4, cuando puse 4 en el objeto, EUREKA, obtuve el número de línea que causa el problema.

La generación de números de línea en seguimientos de pila de excepción es una función integrada para CLR. Sin embargo, debe proporcionar la información que necesita para asignar una dirección de código a un número de línea. Cambie a la configuración de lanzamiento de su proyecto. Proyecto + Propiedades, pestaña Compilar, Opciones avanzadas de compilación. Cambie la configuración “Generar información de depuración” de solo pdb a Completo. Implemente los archivos .pdb junto con su programa.

Tenga en cuenta que el número de línea que obtiene siempre es una estimación, así que no confíe ciegamente en lo que ve. El mapeo es imperfecto debido a los métodos de inserción del optimizador de fluctuación de fase y, por lo demás, al movimiento del código para que el programa se ejecute más rápido.

Aquí tienes las comentarios y valoraciones

Recuerda algo, que tienes la capacidad de añadir una valoración certera si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *