Manejo de excepciones en Python
En Python, en comparación con otros lenguajes de programación, hay muchas situaciones que generan excepciones.
Examinémoslas más detenidamente. Supongamos que tenemos una lista:
lst = [1, 2, 3]
Accedamos a un elemento de la lista que no existe:
print(lts[4])
Después de ejecutar el código, se mostrará un error (excepción):
IndexError: list index out of range
Si necesitamos continuar la ejecución sin
mostrar la excepción, debemos capturarla
usando la estructura try-except. Tiene
la siguiente sintaxis:
try:
# código que puede generar una excepción
except:
# manejo del error
En el bloque try se debe colocar el código
que podría contener una excepción. Si
de repente durante la ejecución de este código surge
una situación excepcional, la ejecución
del código no se detendrá, sino que pasará al código del bloque
except. En este bloque se debe
especificar un mensaje que describa de la manera más precisa
posible la esencia del error ocurrido.
Si durante la ejecución del bloque try
no ocurre ninguna situación excepcional,
entonces el código útil simplemente se ejecutará, y el código
del bloque except no se ejecutará.
Capturemos nuestra excepción al intentar acceder
a un elemento de la lista que no existe. Para
ello, colocaremos en el bloque try el código con
el potencial error. Y en el bloque except
indicaremos que se muestre en la consola el mensaje 'error: elem is not exist':
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Después de ejecutar el código, se mostrará:
'error: elem is not exist'
Después de estudiar la estructura try-except
el estilo de tu código escrito debería cambiar.
Ahora todos los lugares donde pueda surgir
una situación excepcional, deben envolverse
en try, y en el bloque except
especificar la reacción a esta excepción.
Pide al usuario dos números. Divide uno por el otro. Captura la situación excepcional de división por cero.
Pide al usuario un número. Encuentra la raíz cuadrada de ese número. Captura la situación excepcional de extraer la raíz de un número negativo.
Dada una lista. Pide al usuario un número entero. Obtén el elemento de la lista cuyo índice ingresó el usuario. Captura la situación excepcional que ocurrirá si el usuario ingresó un número fuera del rango de la lista.
Dado el siguiente código:
num = '5'
res = num + 2
print(res)
¿Qué problema tiene este código? Corrige sus defectos.
Dado el siguiente código:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
¿Qué problema tiene este código? Corrige sus defectos.