Resumo : neste tutorial, você aprenderá como usar a try...except...else
instrução Python.
Introdução à instrução try…except…else do Python
A try
instrução possui uma else
cláusula opcional com a seguinte sintaxe:
try:
# code that may cause errors
except:
# code that handle exceptions
else:
# code that executes when no exception occurs
Linguagem de código: PHP ( php )
A try...except...else
declaração funciona da seguinte forma:
- Se ocorrer uma exceção na
try
cláusula, o Python ignora o restante das instruções natry
cláusula e aexcept
instrução é executada. - Caso nenhuma exceção ocorra na
try
cláusula, aelse
cláusula será executada.
Quando você inclui a finally
cláusula, else
ela é executada depois try
e antes da finally
cláusula.
Exemplos de instruções Python try…except…else
Vejamos alguns exemplos de uso da try...except...else
declaração.
1) Usando a instrução try…except…else para fluxo de controle
O exemplo a seguir ilustra como usar a try...except...else
cláusula desenvolver um programa que calcula o índice de massa corporal (IMC).
Primeiro, defina uma função para calcular o (IMC) com base na altura e no peso:
def calculate_bmi(height, weight):
""" calculate body mass index (BMI) """
return weight / height**2
Linguagem de código: Python ( python )
Segundo, defina outra função para avaliar o IMC:
def evaluate_bmi(bmi):
""" evaluate the bmi """
if 18.5 <= bmi <= 24.9:
return 'healthy'
if bmi >= 25:
return 'overweight'
return 'underweight'
Linguagem de código: Python ( python )
Terceiro, defina uma nova main()
função que solicite aos usuários a inserção de altura e peso e imprima o resultado do IMC:
def main():
try:
height = float(input('Enter your height (meters):'))
weight = float(input('Enter your weight (kilograms):'))
except ValueError as error:
print('Error! please enter a valid number.')
else:
bmi = round(calculate_bmi(height, weight), 1)
evaluation = evaluate_bmi(bmi)
print(f'Your body mass index is {bmi}')
print(f'This is considered {evaluation}!')
Linguagem de código: Python ( python )
A main()
função usa a try...except...else
instrução para controlar seu fluxo. Se você inserir altura e peso que não podem ser convertidos em números, ValueError
ocorrerá a exceção.
Se nenhuma exceção ocorrer, a else
cláusula será executada. Calcula o índice de IMC e exibe a avaliação.
Junte tudo.
def calculate_bmi(height, weight):
""" calculate body mass index (BMI) """
return weight / height**2
def evaluate_bmi(bmi):
""" evaluate the bmi """
if 18.5 <= bmi <= 24.9:
return 'healthy'
if bmi >= 25:
return 'overweight'
return 'underweight'
def main():
try:
height = float(input('Enter your height (meters):'))
weight = float(input('Enter your weight (kilograms):'))
except ValueError as error:
print(error)
else:
bmi = round(calculate_bmi(height, weight), 1)
evaluation = evaluate_bmi(bmi)
print(f'Your body mass index is {bmi}')
print(f'This is considered {evaluation}!')
main()
Linguagem de código: Python ( python )
2) Usando Python try…except…else e finalmente exemplo
A else
cláusula é executada logo antes da finally
cláusula se nenhuma exceção ocorrer na try
cláusula.
O exemplo a seguir mostra como usar a try...except...else...finally
cláusula:
fruits = {
'apple': 10,
'orange': 20,
'banana': 30
}
key = None
while True:
try:
key = input('Enter a key to lookup:')
fruit = fruits[key.lower()]
except KeyError:
print(f'Error! {key} does not exist.')
except KeyboardInterrupt:
break
else:
print(fruit)
finally:
print('Press Ctrl-C to exit.')
Linguagem de código: Python ( python )
Como funciona.
- Primeiro, defina o
fruits
dicionário que contém três elementos. - Segundo, use um
while
loop para obter repetidamente informações dos usuários. Ele interrompe o loop até que os usuários pressionemCtrl-C
. - Terceiro, use a
try...except...else...finally
cláusula dentro dowhile
loop. Usamos a entrada do usuário para localizar o elemento no dicionário.
Se a chave não existir, KeyError
ocorre a exceção, a cláusula except será executada.
Se os usuários pressionarem Ctrl-C
, KeyboardInterrupt
ocorre a exceção que executa a break
instrução para encerrar o loop.
Se a chave for encontrada no fruits
dicionário, o programa imprime o elemento encontrado.
A finally
cláusula sempre é executada. Ele mostra um lembrete aos usuários de que eles devem pressionar Ctrl-C para sair.
Resumo
- Usar a
try...except...else
instrução Python fornece uma maneira de controlar o fluxo do programa em caso de exceções. - A
else
cláusula é executada se nenhuma exceção ocorrer natry
cláusula. - Nesse caso, a
else
cláusula é executada depois datry
cláusula e antes dafinally
cláusula.