Función con excepción en Python
Es muy conveniente lanzar excepciones, especificándolas en la función mediante condiciones.
Hagamos una función get_sum,
que devolverá la suma de los elementos
de una lista solo si la longitud de la lista es menor
o igual a 3. En caso contrario,
que se lance nuestra excepción ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Ahora pasemos a la función get_sum
una lista y mostremos la función en la consola:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # mostrará 6
También en las funciones se puede especificar la captura
de varios tipos de excepciones. Creemos
otra clase de excepciones ToSmallLength:
class ToSmallLength(Exception):
pass
Ahora especifiquemos en la función la condición: si
la longitud de la lista es igual a cero, que se lance
ToSmallLength. Si no se captura
ninguna excepción, que se muestre
la suma de todos los elementos de la lista:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Para mayor comodidad, se puede encerrar la lista que
se pasará como parámetro a la función,
la función misma y su llamada en un bloque try.
Y la captura de nuestras dos excepciones la colocaremos
en los bloques except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Cree una función que tome un número como parámetro.
En ella, especifique condiciones:
si el número es negativo o igual a cero,
que se lancen las excepciones correspondientes.
En caso contrario, que el número sea
multiplicado por 3.
Compruebe el funcionamiento de la función que creó
utilizando la construcción try-except. Al
hacerlo, capture también sus excepciones.