Saltar al contenido

Cómo manejar errores y excepciones en Python

Errores y excepciones

Si escribe (y lo hará) un código que no funciona, recibirá un mensaje de error.

¿Qué son las excepciones?

Las excepciones son lo que obtiene después de haber ejecutado el programa por primera vez.

Diferentes errores

Hay diferentes tipos de errores en Python, aquí hay algunos de ellos:
ValueError, TypeError, NameError, IOError, EOError, SyntaxError

Esta salida muestra un NameError:

>>> print 10 * ten
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'ten' is not defined

and this output show it's a TypeError
>>> print 1 + 'ten'
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Prueba y excepto

Hay una forma en Python que te ayuda a resolver esto: prueba y excepto

#Put the code that may be wrong in a try block, like this:

try:
    fh = open("non_existing_file")

#Put the code that should run if the code inside the try block fails, like this:
except IOError:
    print "The file does not exist, exiting gracefully"

#Putting it together, it will look like this:
try:
    fh = open("non_existing_file")
except IOError:
    print "The file does not exist, exiting gracefully"
    print "This line will always print"

Manejo de errores EOFE

import sys
try:
    name = raw_input("what is your name?")
except EOFError:
    print "
You did an EOF... "
    sys.exit()

If you do an ctrl+d, you will get an output like this:
>>what is your name?
>>You did an EOF... 

Manejo de interrupciones del teclado

try:
    name = raw_input("Enter your name: ")
    print "You entered: " + name
except KeyboardInterrupt:
    print "You hit control-c"

If you press ctrl+c, you will get an output like this:
>>Enter your name: ^C
>>You hit control-c

Manejo de ValueErrors

while True:
try:
    x = int(raw_input("Please enter a number: "))
    break
except ValueError:
    print "Oops!  That was no valid number.  Try again..."

Para obtener una lista completa de todas las excepciones integradas de Python, consulte esta publicación

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.