No GoTos For Me!


Por experiencia propia puedo decir que, al programar en Visual Basic 6, lo mejor es evitar el uso del "GoTo". No sólo es un comando obsoleto, hace que el código sea difícil de leer e interpretar.

Me dijeron por ahí que GoTo tiene la ventaja de "saltar" a otras partes del código sin dejar recuerdo de lo que sucedió antes. Y también por lo que me han contado, si alguien ya se ha acostumbrado al GoTo se le hace casi imposible programar sin usarlo.

Yo personalmente, prefiero prescindir del GoTo tanto como se pueda.

Basta un ejemplo, sólo imaginemos que el código de las etiquetas Bien y Mal es mucho más complejo:

 

Una etiqueta implica salir del "Sub" al terminar el código correspondiente a ella o saltar a otro lugar para que el código no pase de frente a la siguiente etiqueta. Basta ver este código para notar que entender el anterior requiere más esfuerzo:


Ambos hacen exactamente los mismo, pero el segundo código es más elegante y fácil de entender, y como funciona llamando a métodos o funciones, es más flexible y más sencillo de reparar o modificar.

En realidad, el GoTo debería limitarse solamente al manejo de errores dado que el Visual Basic 6 no tiene un método Try/Catch como el C y sus descendientes (como el C++ y el C#) o el mismo Visual Basic .Net. 

Para manejo de errores el código se vería así:


En caso de producirse un error se debe atrapar de alguna manera para evitar que se cuelgue nuestra aplicación, estos son los únicos casos en los que debería usarse GoTo, ya que demasiados GoTos hacen tremendamente difícil seguirle la secuencia al programa especialmente si, con más GoTos, regresan a la línea siguiente de donde se realizó el salto para continuar ejecutando la aplicación.