Sentencia para Depuración de Errores en VB6.

Me llamo Rafael, me gusta programar aunque aun estoy en proceso de avance, así que recurro a gente con mismos gustos y más experiencia gracias.
Bueno mi duda es
Sobre alguna rutina que me sirva para hacer la depuración de errores de
ejecución, probé usar la sentencia on error goto o resume, pero la
verdad no las manejo al 100 y no me sale su uso, también encontré que
esta la sentencia Try, pero pues un profe en la escuela me recalco que
esa solo repite el proceso que genero el error esperando que ya se haya
reparado, por ejemplo el caso de que no se encuentra un disco y se
trata de nuevo esperando que ya se haya insertado el disco, esto lo
hago, por que quiero extender la estabilidad de mis programas, ya tengo
el código de varios errores comunes y pues lo podría conseguir en caso
de que se presentaran, espero que me hayan entendido y que me puedan
ayudar.

1 respuesta

Respuesta
1
On error goto se utiliza en VB6 y try.. catch se utiliza en VB.NET, y creo que tu profesor se equivoco en darte esa respuesta.
¿Sobre qué estas trabajando? Así te puedo ayudar mejor, ¿ademas qué tipo de error quieres capturar y que código estas probando?
Ok, necesito depurar el error 70 de error al tratar de acceder a un archivo (denegado el acceso).
Estoy desarrollando un programa que borra los archivos temporales, no te dije el código de error, por que quisiera tener una sentencia que pueda usar para cualquier error susitado, te paso el código que uso en este caso y pues en donde marca error:
Private Sub cmdSelLimpiar_Click()
Dim i, y, confirm As Integer
    confirm = MsgBox("¿Esta seguro de borrar los archivos de la lista anterior?", 4 + 256 + 32, "Confirmacion")
        If confirm = 6 Then
            For i = 0 To totalArray1
                Kill (Direccion1 + Archivos(i))
                On Error Resume Next 'dado que no manejo esta instrucción bien, trate de_ sobrellevarlo con resume next, pero no sirvió, aquí es el punto donde se muestra el error.
            Next
            For i = 0 To totalArray2
                Kill (Direccion2 + Archivos1(i))
                On Error Resume Next
            Next
        MsgBox "Se han eliminado satisfactoriamente los archivos seleccionados", vbInformation, "Limpieza Completa"
        Unload Me
        End If
End Sub
Private Sub Command1_Click()
Label4.Caption = Direccion1 & Archivos1(0)
End Sub
Private Sub Form_Load()
Dim i, y As Integer
    MsgBox "NOTA: Los archivos a borrar en esta opcion son los ubicados en las carpetas C:\Windows\TEMP y C:\...\Local settings\Temp.", vbExclamation, "PRECAUCIÓN"
    MsgBox "NOTA: Los archivos que aparecen en la siguiente lista se eliminara de forma definitiva, reviselos antes de continuar para evitar perdida de datos importantes.", vbExclamation, "PRECAUCIÓN"
    For i = 0 To totalArray1
        List1.AddItem Archivos(i)
    Next
    For y = 0 To totalArray2
        List2.AddItem Archivos1(y)
    Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
    FrmSeleccion.Visible = False
    FrmTempC.Show
    FrmTempC.Enabled = True
End Sub
Bueno espero que ahora si me hayas entendido, gracias por la primer respuesta saludos.
Atentamente. FixBot
En primer lugar el On Error resume NEXT lo que hace es ignorar el error, esa sentencia la debes cambiar por:
On Error Goto ErrorEliminoArchivo
Luego antes del End sub del procedimiento colocas lo siguiente:
....
:ErrorEliminoArchivo
If err not null then
'Aqui manejo el error
end if
end sub
Je je, gracias mm, pero pues me marca error de sintaxis, dice sub or funtion not defined, lo puse como me indicaste, pero nomas no.
Private Sub cmdSelLimpiar_Click()
Dim i, y, confirm As Integer
    confirm = MsgBox("¿Esta seguro de borrar los archivos de la lista anterior?", 4 + 256 + 32, "Confirmacion")
        If confirm = 6 Then
            For i = 0 To totalArray1
                Kill (Direccion1 + Archivos(i))
                On Error Resume Next
            Next
            For i = 0 To totalArray2
                Kill (Direccion2 + Archivos1(i))
                On Error GoTo ErrorEliminoArchivo
            Next
        MsgBox "Se han eliminado satisfactoriamente los archivos seleccionados", vbInformation, "Limpieza Completa"
        Unload Me
        End If
: ErrorEliminoArchivo
        If Not Err Then
        MsgBox "Los archivos temporales ya fueron borrados, aquellos que quedan es preferente no borrarlos dado que son necesarios para otros programas.", vbInformation, "Archivos ya borrados."
        End If
End Sub
Mm, o quizá maneje mal el error, si fueras tan amable de explicarme mejor esa sentencia, de on error goto, si se que te envía a una linea del mismo procedimiento donde lo marcaste, pero yo se que tu me lo podrás explicar mejor el como se usa para que pueda detectar mi error yo mismo en el código, je je, bueno gracias por tu tiempo.
Saludos, FixBot
Verifica la sintaxis de err porque yo hace muuuchoooo que deje de trabajar con vb6, ese es el problema, quizás cambiar la pregunta por:
if err <>0 then
' Error
...
Agreadesco tus respuestas, me dieron una idea de lo que podía hacer y que buscar, si me sirvió el método on error goto, solo era que la etiqueta tenia que llevar los dos puntos al final, de cualquier forma gracias y disculpa por la tardanza de la valoración, no había tenido tiempo de entrar al foro, saludos y cuidate.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas