Tratamento de erros com try-except
Uma boa prática ao escrever suas próprias funções é também antecipar as maneiras pelas quais outras pessoas (ou você mesmo, se acidentalmente usar mal sua própria função) poderão usar a função que você definiu.
Como no exercício anterior, você viu que a função len()
é capaz de lidar com argumentos de entrada como strings, listas e tuplas, mas não do tipo int, e gera um erro e uma mensagem de erro apropriados quando encontra argumentos de entrada inválidos. Uma maneira de fazer isso é por meio do tratamento de exceções com o bloco try-except
.
Neste exercício, você definirá uma função e usará um bloco try-except
para lidar com casos em que argumentos de entrada incorretos são passados para a função.
Lembre-se da função shout_echo()
que você definiu nos exercícios anteriores; partes da definição da função são fornecidas no código de exemplo. Seu objetivo é concluir o código de tratamento de exceções na definição da função e fornecer uma mensagem de erro apropriada ao gerar um erro.
Este exercício faz parte do curso
Introdução a funções em Python
Instruções de exercício
- Inicialize as variáveis
echo_word
eshout_words
com strings vazias. - Adicione as palavras-chave
try
eexcept
nos locais apropriados para o bloco de tratamento de exceções. - Use o operador
*
para concatenar cópiasecho
deword1
. Atribua o resultado aecho_word
. - Concatene a string
'!!!'
comecho_word
. Atribua o resultado ashout_words
.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# Define shout_echo
def shout_echo(word1, echo=1):
"""Concatenate echo copies of word1 and three
exclamation marks at the end of the string."""
# Initialize empty strings: echo_word, shout_words
# Add exception handling with try-except
____:
# Concatenate echo copies of word1 using *: echo_word
echo_word = ____
# Concatenate '!!!' to echo_word: shout_words
shout_words = ____
____:
# Print error message
print("word1 must be a string and echo must be an integer.")
# Return shout_words
return shout_words
# Call shout_echo
shout_echo("particle", echo="accelerator")