Foros del Web » Programación para mayores de 30 ;) » .NET »

Como obtener la linea donde ocurre un error

Estas en el tema de Como obtener la linea donde ocurre un error en el foro de .NET en Foros del Web. Hola. Estoy tratando de obtener la linea del error, pero realmente eso de usar funciones anidadas me da un poco duro, asi que recurro a ...
  #1 (permalink)  
Antiguo 12/06/2006, 11:15
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Como obtener la linea donde ocurre un error

Hola.

Estoy tratando de obtener la linea del error, pero realmente eso de usar funciones anidadas me da un poco duro, asi que recurro a ustedes para que por favor me ayuden, el caso es el siguiente, tengo una excepcion y en el StackTrace tengo las siguientes lineas (solo un fragmento, esto esta muy largo):

Código:
System.Data.Common.DbCommand.System.Data.IDbCommand.
ExecuteReader(CommandBehavior behavior)\r\n   at System.Data.
Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] 
datatables, Int32 startRecord, Int32 maxRecords, 
String srcTable, IDbCommand command, CommandBehavior behavior)\r\n
  at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable,
 IDbCommand command, CommandBehavior behavior)\r\n
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)\r\n   at 
Magenta.Datos.EjecutarProcedimiento(String NombreProcedimiento,
 String Conexion, SqlParameter[] parametros, 
SqlParameter[]& paramRetorno) in ........\Datos\\Datos.cs:line 83"
Y como pueden ver lo ultimo es: line 83", necesito recuperar el numero 83 teniendo en cuenta que pueden ser hasta 4 digitos cuando la clase pasa de 999 lineas de codigo, cosa que pocas veces ocurre, pero no falta jeje, bueno ahora lo que no tengo idea es como unir funciones de substring(), split(), etc.. para poder obtener solo la el numero de la linea.

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #2 (permalink)  
Antiguo 12/06/2006, 14:11
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Puedes usar la clases StackTrace y StackFrame para obtener esa información.
Código:
try
{
    throw new Exception("foo");
}
catch (Exception ex)
{
    StackTrace st = new StackTrace(ex, true);
    StackFrame frame;
    for (int i = 0; i < st.FrameCount; i++ )
    {
        frame = st.GetFrame(i);
        Response.Write(frame.GetFileLineNumber());
    }
}
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 16/06/2006, 09:44
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Hola xknown

Tengo un inconveniente, para poder crear una instancia de la clase: StackTrace pero no me funciona, hay que hacer algun using o algo para poder hacerlo

Gracias
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.