Cuando todo es una excepción

Estándar

Hoy os vengo a hablar de algo que me ha pasado personalmente trabajando con Python. Si vienes de un lenguaje de programación compilado, te habrás visto, como yo, envuelto en ciertas situaciones en las que tu código funciona perfectamente hasta el punto en el que cierta parte es ejecutada y contiene un error. Estos errores en tiempo de ejecución son difíciles de encontrar y de evitar en muchas ocasiones, y los despistes comunes que podamos tener no aydudan.

En un lenguaje como Python en el que la gran mayoría de esos errores, que otros lenguajes lanzarían en tiempo de compilación, son excepciones, hemos de ser especialmente cautos con nuestro control de éstas, o podemos encontrarnos con casos como el siguiente:

if __name__ == "__main__":
    var = 1
    try:
        new_var = wrong_var + 1
        print('Your new var value: {0}'.format(new_var))
    except:
        pass

El código por supuesto es una versión muy simplificada de lo que podría ser un programa real, pero la captura de de cualquier tipo de excepción es una técnica real que se utiliza en muchos casos. En este ejemplo, wrong_var podría ser un residuo de una refactorización de la variable new_var, que cambió de nombre, pero no en todas sus apariciones en el script. En este caso nuestro script no proporcionaría ningún tipo de aviso o mensaje que nos advierta de este error, dado que el bloque de captura de la excepción elimina esa posibilidad.

Repito, en este caso ese bloque no tiene mucho sentido, pero estoy seguro que en otro tipo de situaciones puede parecer una buena idea. Mejor pensárselo dos veces.