Python Try Except
El bloque try
le permite probar un bloque de código en busca de errores.
El bloque except
le permite manejar el error.
El bloque else
le permite ejecutar código cuando no hay ningún error.
El bloque finally
le permite ejecutar código, independientemente del resultado de los bloques try y except.
Manejo de excepciones
Cuando ocurre un error, o una excepción, como lo llamamos, Python normalmente se detendrá y generará un mensaje de error.
Estas excepciones se pueden manejar usando la declaración try
:
Ejemplo
El bloque try
generará una excepción, porque x
no está definido:
try:
print(x)
except:
print("Ocurrió una excepción")
Inténtalo tú mismo »
Dado que el bloque try genera un error, se ejecutará el bloque except.
Sin el bloque try, el programa fallará y generará un error:
Muchas excepciones
Puedes definir tantos bloques de excepción como quieras, p.e. si desea ejecutar un bloque de código especial para un tipo especial de error:
Ejemplo
Imprima un mensaje si el bloque try genera un NameError
y otro para otros errores:
try:
print(x)
except NameError:
print("La variable x no está definida")
except:
print("Algo más salió mal")
Inténtalo tú mismo »
Else
Puede utilizar la palabra clave else
para definir un bloque de código que se ejecutará si no se generaron errores:
Ejemplo
En este ejemplo, el bloque try
no genera ningún error:
try:
print("Hola")
except:
print("Algo salió mal")
else:
print("Nada salió mal")
Inténtalo tú mismo »
Finally
El bloque finally
, si se especifica, se ejecutará independientemente de si el bloque try genera un error o no.
Ejemplo
try:
print(x)
except:
print("Algo salió mal")
finally:
print("Se acabó el 'intento excepto'")
Inténtalo tú mismo »
Esto puede ser útil para cerrar objetos y limpiar recursos:
Ejemplo
Intente abrir y escribir en un archivo en el que no se pueda escribir:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Algo salió mal al escribir en el archivo")
finally:
f.close()
except:
print("Algo salió mal al abrir el archivo")
Inténtalo tú mismo »
El programa puede continuar, sin dejar abierto el objeto del archivo.
Generar una excepción
Como desarrollador de Python, puedes optar por generar una excepción si se produce una condición.
Para generar (o generar) una excepción, use la palabra clave raise
.
Ejemplo
Genera un error y detiene el programa si x es inferior a 0:
x = -1
if x < 0:
raise Exception("Lo sentimos, no hay números bajo cero")
Inténtalo tú mismo »
La palabra clave raise
se utiliza para generar una excepción.
Puede definir qué tipo de error generar y el texto que se imprimirá al usuario.
Ejemplo
Genera un TypeError si x no es un número entero:
x = "Hola"
if not type(x) is int:
raise TypeError("Sólo se permiten números enteros")
Inténtalo tú mismo »