Curso de introducción a la programación con Python

Autor: Luis Fernando Apáez Álvarez

Clase 13: Excepciones

Hasta ahora es común que nuestros programas en Python hayan podido tener errores, es normal pues apenas estamos aprendiendo; puede que al realizar alguna práctica o resolviendo un ejercicio te haya pasado más de una vez que, al copilar, te salga un error, por ejemplo algo del estilo

Los principales tipos de errores o excepciones en Python son:

Si bien el condicional if nos permite cierto manejo respecto a los errores, por ejemplo

tenemos el manejo de excepciones que nos da un mejor control sobre ellos. De tal manera, hay una estructura de control para la detección y tratamiento de errores (o excepciones): try-except. Su sintaxis básica es

que básicamente funciona como: intenta ejecutar estas acciones (referentes al try) y si se comente un error ejecuta inmediatamente estas otras acciones (referentes al except ). Por ejemplo

Notemos que después de except hemos colocado el error o excepción del tipo ZeroDivisionError pues sabemos de antemano que el error que pueda presentarse en el try es de este tipo.

Otro ejemplo, cuando hicimos una calculadora para hallar las soluciones de una ecuación de segundo grado en la Práctica 3, podemos implementar un tratamiento de excepciones para cuando el discriminante de la ecuación sea menor a cero (lo que desencadena en calcular raíces cuadradas de números negativos y así caer en un error dentro de Python).

Dado que puede ocurrir que intentemos calcular raíces cuadradas de números negativos, colocaremos la expresión correspondiente a la fórmula general dentro de las acciones del try para que se ejecuten siempre y cuando no estemos calculando raíces cuadradas de números negativos, es decir, dentro de éste se estarán calculando las soluciones para las ecuaciones cuadráticas cuyo discriminante es mayor o igual a 0.

Si dentro del try se presenta un error, entonces ejecutaremos inmediatamente las acciones dentro del except las cuales se encargarán de calcular las soluciones para ecuaciones de segundo grado cuyo discriminante es menor a cero. Dentro de éste implementaremos el código como lo hicimos en la Práctica 3

el cual tiene menos líneas que el empleado en la práctica 3 y además es más intuitivo sobre el manejo de los posibles errores pues estamos siendo más precisos en el tipo de error o excepción que puede presentarse.

La excepción ValueError es un error referente al dominio matemático. Si consideramos la función $f(x)=\sqrt{x}$, el dominio de $f$ es el intervalo $[0,\infty)$, por lo que ingresar valores fuera de este intervalo no está permitido. En otras palabras, no es posible efectuar raíces cuadradas de números negativos:

Socialmedia.PNG