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 do 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:
tryexecutando 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 completando 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))