Título: Pequeña duda Publicado por: amtapias en 14 Marzo 2006, 16:10 pm Wenas. Mi pregunta es la siguiente. ¿Como puedo hacer para que cuando se produzca un error en el programa vuelva a cargar el programa desde el principio y se ignore el error?
Muchas gracias Título: Re: Pequeña duda Publicado por: .Slasher-K. en 14 Marzo 2006, 16:41 pm Hay varios Controladores de Error en VB, siempre hablando de errores internos del programa.
On Error Resume Next Este controlador es muy útil para manipular errores no controlados, porque en el caso que haya un error pasa a la siguiente instrucción, por ejemplo: Código: Function Div(Dividendo As Double, Divisor As Double)As Double Si por ejemplo, se le pasa como divisor 0, ese código produciría el error "11, División por cero", pero al poner ese controlador de error lo que haría el código es pasar directamente a Exit Function. Las contras de esto es que en muchos casos el programa producirá errores y no devolverá el valor esperado, por lo que el error se arrastrará y no funcionará como se espera. Por eso, al usar On Error Resume Next, es necesario saber qué errores se pueden llegar a producir y controlarlos, en el caso anterior sería así: Código: Function Div(Dividendo As Double, Divisor As Double)As Double El objeto Err se utiliza para obtener información del último error en el contexto actual, en el caso que se produzca un error la propiedad Number tendrá el nº de error, de lo contrario sería 0, por lo que se comprueba que haya un error y en el caso que se de esta situación, muestra un mensaje. On Error Goto Label En este caso lo que hace este controlador de errores es ir a una etiqueta dentro del mismo procedimiento, en el caso que se produzca un error: Código: Function Div(Dividendo As Double, Divisor As Double)As Double En este caso el programa saltaría a ErrDiv. También existe On Error Goto 0 para eliminar el controlador de errores anterior, pero no se usa casi. Título: Re: Pequeña duda Publicado por: amtapias en 14 Marzo 2006, 19:01 pm Muchas Gracias pero mi duda era si hay alguna manera de recargar el programa desde 0. Que tenga el mismo efecto que cerrarlo y volver a ejecutarlo cuando se produzca un error.
Muchas Gracias |