You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Python</strong> <strong>para</strong> <strong>todos</strong><br />
vemos en el trazado de pila, el error estuvo causado por la llamada a<br />
calcular() de la línea 7, que a su vez llama a division(1, 0) en la<br />
línea 5 y en última instancia por la ejecución de la sentencia a / b de<br />
la línea 2 de division.<br />
A continuación vemos el tipo de la excepción, ZeroDivisionError,<br />
junto a una descripción del error: “integer division or modulo by zero”<br />
(módulo o división entera entre cero).<br />
En <strong>Python</strong> se utiliza una construcción try-except <strong>para</strong> capturar y<br />
tratar las excepciones. El bloque try (intentar) define el fragmento de<br />
código en el que creemos que podría producirse una excepción. El bloque<br />
except (excepción) permite indicar el tratamiento que se llevará a<br />
cabo de producirse dicha excepción. Muchas veces nuestro tratamiento<br />
de la excepción consistirá simplemente en imprimir un mensaje más<br />
amigable <strong>para</strong> el usuario, otras veces nos interesará registrar los errores<br />
y de vez en cuando podremos establecer una estrategia de resolución<br />
del problema.<br />
En el siguiente ejemplo intentamos crear un objeto f de tipo fichero.<br />
De no existir el archivo pasado como parámetro, se lanza una excepción<br />
de tipo IOError, que capturamos gracias a nuestro try-except.<br />
try:<br />
f = file(“archivo.txt”)<br />
except:<br />
print “El archivo no existe”<br />
<strong>Python</strong> permite utilizar varios except <strong>para</strong> un solo bloque try, de<br />
forma que podamos dar un tratamiento distinto a la excepción dependiendo<br />
del tipo de excepción de la que se trate. Esto es una buena<br />
práctica, y es tan sencillo como indicar el nombre del tipo a continuación<br />
del except.<br />
try:<br />
num = int(“3a”)<br />
print no_existe<br />
except NameError:<br />
print “La variable no existe”<br />
except ValueError:<br />
print “El valor no es un numero”<br />
66