Tratando Múltiplas Exceções
Parte da seção Logic & Flow do Journey de Python da Coddy — lição 65 de 78.
Em Python, podemos tratar diferentes tipos de exceções em blocos except separados. Isso nos permite responder de forma diferente com base no erro específico que ocorre.
Comece com uma estrutura básica try-except:
try:
# Code that might raise exceptions
pass
except Exception as e:
# Handle any exception
passPara lidar com múltiplas exceções, adicione blocos except específicos:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Você também pode capturar múltiplos tipos de exceção em um único bloco except:
try:
# Some code
pass
except (ValueError, TypeError):
print("Invalid input type!")A ordem dos blocos except importa - sempre coloque exceções mais específicas antes das mais genéricas.
Desafio
FácilCrie uma função chamada process_data que:
- Recebe uma string de entrada representando dados potenciais
- Tenta convertê-la para um número inteiro e, em seguida, calcula 100 dividido por esse inteiro
- Retorna o resultado
- Trata pelo menos 3 exceções possíveis:
ValueErrorse a entrada não puder ser convertida para um inteiro (imprima "Input must be a number!")ZeroDivisionErrorse a entrada for 0 (imprima "Cannot divide by zero!")- Qualquer outra exceção com um manipulador genérico (imprima "An unexpected error occurred!")
Folha de consulta
Lide com diferentes tipos de exceções usando múltiplos blocos except:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Capture múltiplos tipos de exceção em um único bloco except:
try:
# Algum código
pass
except (ValueError, TypeError):
print("Invalid input type!")Sempre coloque exceções mais específicas antes das mais genéricas na ordem dos blocos except.
Experimente você mesmo
def process_data(input_string):
try:
# Tenta converter a string de entrada para um número inteiro
# Calcula 100 dividido pelo valor de entrada
# Retorna o resultado
except ValueError:
# Trata o caso onde a entrada não pode ser convertida para um número inteiro
except ZeroDivisionError:
# Trata o caso onde a entrada é zero
except:
# Trata quaisquer outras exceções inesperadas
return NoneEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Logic & Flow
1Exploração de Variáveis
ConstantesAtribuição de Múltiplas VariáveisTroca de VariáveisVariáveis de Espaço ReservadoArredondar NúmerosCasting de Listas4Aplicativo de Agenda de Contatos
Exibir MenuAdicionar Contato7Conjuntos Parte 2
Operações Matemáticas Parte 1Operações Matemáticas Parte 2Revisão - Caça ao TesouroSubconjuntos e SuperconjuntosIterando sobre ConjuntosRevisão - Rastreador de Torneio10List Comprehensions Básicas
A SintaxeCriando Listas SimplesAdicionando CondiçõesUsando Agregação de DadosRecapitulação - House Of ListsRecapitulação - Elements Of Freedom13Sistema de Gerenciamento de Inventário
Visão Geral do ProjetoAdicionar Item2Dicionários Parte 1
O que é um Dicionário?Criando um DicionárioAcessando ValoresModificando DicionáriosRecapitulação - Gerenciador de Receitas5Tomada de Decisão Avançada
Operador TernárioVerificações de PertencimentoVerificações de IdentidadeErros de IndentaçãoRecapitulação - Filtro de Férias8Gerenciador de Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno11Funções Avançadas
Retornando Múltiplos ValoresFunções Lambda Parte 1Funções Lambda Parte 2Desafio de Recapitulação - Lambda SortFunções Recursivas Parte 1Funções Recursivas Parte 2Recapitulação - Somar Listas Aninhadas14Funções de Ordem Superior
A Função MapA Função FilterRecapitulação - Validador de E-mailRecapitulação - Processador de Números3Dicionários Parte 2
Métodos de DicionárioDicionários AninhadosVerificando ChavesIterando em DicionáriosRecapitulação - Contador de Frequência6Conjuntos Parte 1
O que é um Conjunto?Operações BásicasMétodos de ConjuntosRecapitulação - Remover Duplicatas9Agregação de Dados Avançada
Usando SumEncontrando Mínimo e MáximoOrdenando Dados de Forma EficienteRecapitulação - Dictionary Sorter12Tratamento Básico de Erros
O que é Tratamento de Erros?O Bloco Try e ExceptTratando Múltiplas ExceçõesRecapitulação - Erros no Carrinho de Compras