• Viernes 19 de Abril de 2024, 22:22

Autor Tema:  Control De Errores  (Leído 1748 veces)

Dieguinho.

  • Miembro MUY activo
  • ***
  • Mensajes: 163
    • Ver Perfil
Control De Errores
« en: Jueves 3 de Mayo de 2007, 16:21 »
0
Hola,
Bueno como dice el titulo estoy viendo el tema del control de errores usando try - catch.
Lo que no se es como hacer para que me devuelta el numero exacto de la linea en donde se genero el error.
Vi que en algun sql se usa algo como ERROR_LINE, en visual basic usaba la palabra Erl.
Pero en c# no tengo la menor idea.
Yo en realidad quisiera saber si hay algo asi que me diga solamente el numero de linea, sin descripcion y eso, solo la linea.

Si alguno sabe y me dice se lo agradeceria, saludos!

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Control De Errores
« Respuesta #1 en: Jueves 3 de Mayo de 2007, 16:40 »
0
Al usar Try - Catch, el programa al encontrar una excepcion salta directamente donde está el Catch y no permite saber que fue lo que sucedio a menos de que crees una variable para dicha excepcion.

Puede que esto te ayude en el CATCH:

Código: Text
  1. catch (Exception ex)
  2. {
  3. MessageBox.Show("Error : " + ex, "Este es el Error");
  4. }
  5.  
  6.  

La variable "ex" corresponde al error y deberia indicar la línea en un MessageBox, junto con su descripción.

Si no, intenta ejecutar el programa sin el Try Catch, y en modo depuración se detendrá automáticamente.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

Dieguinho.

  • Miembro MUY activo
  • ***
  • Mensajes: 163
    • Ver Perfil
Re: Control De Errores
« Respuesta #2 en: Jueves 3 de Mayo de 2007, 16:46 »
0
Si, actualmente tengo algo por el estilo.
Lo que yo quiero hacer exacamente es en el momento que el programa este funcionando y haya algun error, que lo escriba en un archivo de texto designado para eso en donde estara la fecha, una breve descripcion del error (en tu ejemplo "ex.Message" me trae eso) y el numero de linea.

si veo lo que deja "ex" lo ultimo es el nro de linea de codigo donde estuvo el error, lo que yo necesito.
Cualquier cosa voy de tomar de todo el mensaje unicamente eso.
Pero pense que habia algo mas directo


Gracias!!

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Control De Errores
« Respuesta #3 en: Jueves 3 de Mayo de 2007, 17:02 »
0
En Exception puedes especificar que quieres asignarle a ex. Por ejemplo que muestre un tipo determinado de excepción y no todas.

Por ejemplo en vez de usar Exception, puedes usar IOException para lo que son las excepciones de entrada y salida en el caso de busqueda, lectura o escritura de archivos.

Tambien la variable ex la puedes convertir a string y obtener solo los 3 ultimos valores una vez obtenido el largo, para que te informe solo la linea, y asi tambien guardarlos en un archivo de texto o log como quieres Tu.

Aunque si te das cuenta, ex tiene propiedades, prueba con cada una de ellas, por ejemplo:

Código: Text
  1. ex.Source
  2.  

Suerte.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

Dieguinho.

  • Miembro MUY activo
  • ***
  • Mensajes: 163
    • Ver Perfil
Re: Control De Errores
« Respuesta #4 en: Jueves 3 de Mayo de 2007, 17:19 »
0
Estuve probando con las propiedades pero no encontre nada.
Por ahora lo que llegue a hacer es esto (un poco precario pero consegui los datos que queria)
Código: Text
  1.  
  2.             string[] sError;
  3.             try
  4.             {
  5.                  xxxxxxxxxxxxxxxxxxxxxx
  6.             }
  7.             catch(Exception exp)
  8.             {
  9.                 //muestra el mensaje completo del error (al final esta el nro de linea)
  10.                 MessageBox.Show(exp.ToString());
  11.  
  12.                 //muestra el numero de linea donde estuvo el error
  13.                 sError = exp.ToString().Split(' ');
  14.                 MessageBox.Show(sError[sError.GetUpperBound(0)]);
  15.                
  16.             }
  17.  
  18.  

Igualmente voy a seguir buscando, algo tiene que haber mas facil (espero).

Neopro

  • Miembro MUY activo
  • ***
  • Mensajes: 316
    • Ver Perfil
Re: Control De Errores
« Respuesta #5 en: Jueves 3 de Mayo de 2007, 17:22 »
0
Por lo menos lo que te comente me ha sido muy eficaz y tampoco lo encuentro para nada complejo.

Pero suerte.
              [size=109]"Has lo que digo y no hagas lo que hago"[/size]

M4C

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Control De Errores
« Respuesta #6 en: Jueves 3 de Mayo de 2007, 17:57 »
0
tal vez aporte información valiosa la pila de seguimiento que podes obtener para el log de la siguiente forma:

MessageBox.Show(exp.StackTrace);

saludos!