Tratando Múltiplas Exceções
Parte da seção Lógica e Fluxo do Journey de Python da Coddy. Lição 65 de 78.
Em Python, podemos lidar com diferentes tipos de exceções em blocos except separados. Isso nos permite responder de maneiras diferentes com base no erro específico que ocorre.
Comece com uma estrutura básica de try-except:
try:
# Código que pode levantar exceções
pass
except Exception as e:
# Trata qualquer exceção
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 vários tipos de exceção em um único bloco except:
try:
# Algum código
pass
except (ValueError, TypeError):
print("Invalid input type!")A ordem dos blocos except é importante — sempre coloque as exceções mais específicas antes das mais gerais.
Desafio
FácilCrie uma função chamada process_data que:
- Aceita uma entrada de texto que representa dados em potencial
- Tenta convertê-la em um número inteiro e, em seguida, calcula 100 dividido por esse número inteiro
- Retorna o resultado
- Trata pelo menos 3 exceções possíveis:
ValueErrorse a entrada não puder ser convertida em um número inteiro (imprima "Input must be a number!")ZeroDivisionErrorse a entrada for 0 (imprima "Cannot divide by zero!")- Qualquer outra exceção com um tratador genérico (imprima "An unexpected error occurred!")
Experimente você mesmo
def process_data(input_string):
try:
# Tenta converter a string de entrada para um inteiro
# Calcula 100 dividido pelo valor de entrada
# Retorna o resultado
except ValueError:
# Trata o caso em que a entrada não pode ser convertida para um inteiro
except ZeroDivisionError:
# Trata o caso em que 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 Lógica e Fluxo
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 ComprasPratique por conta própria: Compilador de Python online