Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!

Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount

Tratamento de Exceções


Quando se está programando, erros acontecem. É apenas um fato da vida. Talvez o usuário tenha fornecido uma entrada ruim. Talvez um recurso de rede não esteja disponível. Talvez o programa tenha ficado sem memória. Ou o programador possa até ter cometido um erro!

A solução do Python para erros são as exceções. Você pode já ter visto uma exceção antes.

print(a)

#erro
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

Ops! Esqueci de atribuir um valor à variável 'a'.

Mas às vezes você não quer que as exceções interrompam completamente o programa. Você pode querer fazer algo especial quando uma exceção é levantada. Isso é feito em um bloco try/except.

Aqui está um exemplo trivial: Suponha que você esteja iterando sobre uma lista. Você precisa iterar sobre 20 números, mas a lista é criada a partir da entrada do usuário e pode não ter 20 números nela. Depois de chegar ao final da lista, você só quer que o restante dos números seja interpretado como 0. Veja como você poderia fazer isso:

def do_stuff_with_number(n):
    print(n)

def catch_this():
    the_list = (1, 2, 3, 4, 5)

    for i in range(20):
        try:
            do_stuff_with_number(the_list[i])
        except IndexError: # Levantado quando acessando um índice inexistente de uma lista
            do_stuff_with_number(0)

catch_this()

Pronto, isso não foi muito difícil! Você pode fazer isso com qualquer exceção. Para mais detalhes sobre como lidar com exceções, consulte os Docs do Python.

Exercício

Trate todas as exceções! Pense nas lições anteriores para retornar o sobrenome do ator.

# Setup actor = {"name": "John Cleese", "rank": "awesome"} # Function to modify!!! def get_last_name(): return actor["last_name"] # Test code get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) actor = {"name": "John Cleese", "rank": "awesome"} def get_last_name(): return actor["name"].split()[1] get_last_name() print("All exceptions caught! Good job!") print("The actor's last name is %s" % get_last_name()) test_output_contains("Cleese") test_output_contains("All exceptions caught! Good job!") test_output_contains("The actor's last name is Cleese") success_msg("Great work!")

This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!

Previous Tutorial Next Tutorial Take the Test
Copyright © learnpython.org. Read our Terms of Use and Privacy Policy