ComeçarComece gratuitamente

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

Ver Curso

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á, retornando 1/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))
Editar e executar código