Função com exceção em Python
É muito conveniente lançar exceções, especificando-as em funções usando condições.
Vamos criar uma função get_sum,
que retornará a soma dos elementos
de uma lista apenas se o comprimento da lista for menor
ou igual a 3. Caso contrário,
que nossa exceção ToBigLength seja lançada:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Agora vamos passar uma lista para a função get_sum
e imprimir o resultado no console:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # exibirá 6
Também é possível especificar a captura de
vários tipos de exceções em funções. Vamos
criar mais uma classe de exceções ToSmallLength:
class ToSmallLength(Exception):
pass
Agora vamos especificar na função a condição: se
o comprimento da lista for zero, que ToSmallLength
seja lançada. Se nenhuma exceção for capturada,
que a soma de todos os elementos da lista seja retornada:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Por conveniência, podemos colocar a lista que
será passada como parâmetro para a função,
a própria função e sua chamada em um bloco try.
E a captura das nossas duas exceções será colocada
nos blocos except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Crie uma função que receba um número como parâmetro.
Ela deve conter condições: se o número for negativo ou igual a zero,
que as exceções correspondentes sejam lançadas.
Caso contrário, o número deve ser
multiplicado por 3.
Teste a função que você criou
usando a construção try-except. Ao fazer isso,
também capture suas exceções.