Captura de exceções
Antes de começar a escrever suas próprias exceções personalizadas, vamos nos certificar de que você conhece os fundamentos do tratamento de exceções.
Neste exercício, você receberá uma função invert_at_index(x, ind)
que recebe dois argumentos, uma lista x
e um índice ind
, e inverte o elemento da lista nesse índice. Por exemplo, invert_at_index([5,6,7], 0)
retorna 1/5
, ou 0.2
.
Seu objetivo é implementar o tratamento de erros para gerar exceções personalizadas com base no tipo de erro que ocorre.
Este exercício faz parte do curso
Introdução à programação orientada a objetos em Python
Instruções de exercício
Use um padrão try
- except
- except
(com dois blocos except
) dentro da função para capturar e tratar duas exceções da seguinte forma:
try
executando o código como está, retornando1/x[ind]
.- Se ocorrer
ZeroDivisionError
, imprima"Cannot divide by zero!"
, - Se ocorrer
IndexError
, imprima"Index out of range!"
Você saberá que acertou se o código for executado sem erros e a saída no console for:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))