Controlar Errores con On Error Resume Next
On Error Resume Next es una declaración VBA básica para Excel que le permite ignorar errores de forma controlada. A diferencia de On Error Goto, que redirige a una etiqueta de error específica, On Error Resume Next simplemente continúa con la siguiente línea de código cuando ocurre un error. Esto permite manejar los errores con mayor facilidad y evita que interrumpan el flujo normal del programa.
¿Como funciona?
Error Resume Next, Si ocurre un error en este bloque, el código se detendrá y luego continuará con la siguiente línea como si nada hubiera pasado. Esto le permite omitir errores pequeños o temporales que no afectan la funcionalidad general del programa.
On Error Resume Next ' Activa el modo de ignorar errores
' Bloque de código donde se pueden producir errores
' ...
' La ejecución continúa con la siguiente línea
End Sub
¿Para qué se usa esto?
En caso de error, reanudar a continuación se utiliza principalmente:
- Es probable que se produzcan ciertos errores en determinadas condiciones, puede utilizar esta declaración para evitar que esos errores interrumpan el flujo de su código.
- Si un error inesperado no es crítico para el funcionamiento de su programa, puede ignorarlo y continuar ejecutándolo como de costumbre.
- Puede implementar un mecanismo de reintento para intentar una operación varias veces antes de considerarla como un error.
Ejemplo:
Imagine que tiene un proceso que intenta leer datos de una base de datos. Ignorará los errores que se produzcan si la conexión a la base de datos falla temporalmente.
On Error Resume Next ' Activa el modo de ignorar errores
' Intenta conectarse a la base de datos
Set conexionBD = CreateObject("ADODB.Connection")
conexionBD.ConnectionString = "Provider=SQLOLEDB;Data Source=MiServidor;Initial Catalog=MiBaseDatos"
conexionBD.Open
If conexionBD.State <> 1 Then ' Verifica si la conexión es exitosa
' Si falla la conexión, ignora el error y continúa
' Puedes implementar un mecanismo de reintentos aquí
Exit Sub
End If
' Ejecuta la consulta a la base de datos
' ...
' Cierra la conexión a la base de datos
conexionBD.Close
Exit Sub
En este ejemplo, si falla la conexión a la base de datos, el código ignora el error y continúa en la siguiente línea. Puede implementar un mecanismo de reintento en el bloque If para reintentar la conexión antes de que se considere que la operación ha fallado.
Responses