Python prueba excepto
El try
bloque le permite probar un bloque de código en busca de errores.
El except
bloque le permite manejar el error.
El else
bloque te permite ejecutar código cuando no hay ningún error.
El finally
bloque le permite ejecutar código, independientemente del resultado de los bloques de prueba y excepción.
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 try
declaración:
Ejemplo
El try
bloque generará una excepción, porque x
no está definido:
try:
print(x)
except:
print("An exception occurred")
Dado que el bloque de prueba genera un error, se ejecutará el bloque de excepción.
Sin el bloque de prueba, el programa fallará y generará un error:
Ejemplo
Esta declaración generará un error, porque x
no está definida:
print(x)
muchas excepciones
Puede definir tantos bloques de excepción como desee, por ejemplo, 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("Variable x
is not defined")
except:
print("Something else went
wrong")
Demás
Puede usar la else
palabra clave para definir un bloque de código que se ejecutará si no se generan errores:
Ejemplo
En este ejemplo, el try
bloque no genera ningún error:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Por fin
El finally
bloque, si se especifica, se ejecutará independientemente de si el bloque try genera un error o no.
Ejemplo
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Esto puede ser útil para cerrar objetos y limpiar recursos:
Ejemplo
Intente abrir y escribir en un archivo que no se puede escribir:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
El programa puede continuar, sin dejar abierto el objeto de archivo.
Levantar una excepción
Como desarrollador de Python, puede optar por generar una excepción si se produce una condición.
Para lanzar (o generar) una excepción, use la raise
palabra clave.
Ejemplo
Genera un error y detiene el programa si x es menor que 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
La raise
palabra clave se utiliza para generar una excepción.
Puede definir qué tipo de error generar y el texto para imprimir al usuario.
Ejemplo
Genera un TypeError si x no es un número entero:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")