terça-feira, 12 de dezembro de 2023

23. Tratamento de Erros e Exceções


primt('x') -> Erro de sintaxe
print(x) -> Erro semântico (variável x nao foi definida)
exceção: NameError

n = int('oito')
print(f'Você digitou o número {n}')

exceção: ValueError (digitou string no lugar de int)


a = 8
b = 0
r = a / b
print(r)

exceção: ZeroDivisionError

r = 2 / '2'
exceção: TypeError

lst = [3, 6, 4]
print(lst[3])

exceção: IndexError

import uteis
Se o módulo nao exista:
Exceção: ModuleNotFoundError

Python Exception List (pesquisar no google)

try:  #Obrigatório usar
    OPERAÇÕES
except:  #Obrigatório usar
    FALHOU
else:  #Facultativo usar
    DEU CERTO!
finally:  #Facultativo usar
    Vai mostrar independente de dar certo ou errado

try:
    a = 2
    b = 0
    c = a / b
except:
    print('Tivemos um problema')
else:
    print(f'O resultado é {r}')
finally:
    print(f'Volte sempre!')

Usando o Exception
try:
    a = 2
    b = 0
    c = a / b
except Exception as erro:
    print(f'Tivemos um problema {erro.__class__}') #não mostrar para o usuário!
else:
    print(f'O resultado é {r}')
finally:
    print(f'Volte sempre!')


podemos ter vários
except para cada tipo de exceção:




Excercícios

113: Reescreva a função
leiaInt() que fizemos no Exercício 104, incluindo agora a possibilidade da digitação de um número de tipo inválido. Aproveite também e crie também uma função leiaFloat() com a mesma funcionalidade.

114: Crie um código em Python que teste se o site Pudim está acessível pelo computador usado.

115: Crie um pequeno programa modularizado que permita cadastrar pessoas pelo seu nome e idade em um arquivo de texto simples. O sistema só vai ter 2 opções: cadastrar uma nova pessoa e listar todas as pessoas cadastradas.