![Featued image for: Netlify’s Approach to the Frontend According to Its New CTO](https://optimuscloud.com.br/wp-content/uploads/2024/02/A-abordagem-da-Netlify-para-o-frontend-de-acordo-com-150x150.png)
A abordagem da Netlify para o frontend de acordo com seu novo CTO
23 de fevereiro de 2024![Introdução aos Jupyter Notebooks para desenvolvedores](https://optimuscloud.com.br/wp-content/uploads/2024/02/1708781643_Introducao-aos-Jupyter-Notebooks-para-desenvolvedores-150x150.jpg)
Introdução aos Jupyter Notebooks para desenvolvedores
24 de fevereiro de 2024Em algum momento, você criará um programa Python que gera um evento inesperado (também conhecido como “erro de execução”). Se você não tratar esses eventos adequadamente, seu programa falhará.
Não importa quão bom programador você seja ou venha a ser, acontecem coisas que estão fora do seu controle. Você poderia escrever o código perfeito, mas se depender da entrada do usuário, talvez você não tenha nenhuma palavra a dizer se ele inseriu algo que funciona.
Em outras palavras, variáveis acontecem, e essas variáveis nem sempre acontecem corretamente.
É por isso que Python inclui tratamento de exceções. Sem esse tratamento, se um programa não funcionar como esperado, você não saberá o que deu errado.
Deixe-me mostrar um exemplo muito óbvio.
Vamos criar um programa Python que tentará dividir 100 por 0. Se você se lembra da matemática básica, porque 0 não tem multiplicação inversa, você não pode dividir por zero.
Nosso programa Python pode ser parecido com isto:
a = 100 b = 0 print (a/b)
Se você executar o programa acima, receberá o erro:
Traceback (most recent call last): File "/home/jack/exception.py", line 3, in <module> print (a/b) ~^~ ZeroDivisionError: division by zero
Ao contrário da música dos anos 80 do The Fixx, você não pode ser salvo por zero neste caso.
Como podemos contornar esse problema? Com tratamento de exceções.
Em Python, você encontrará um grande número de exceções. Essas exceções são categorizadas em classes base (como with_traceback, ArithmeticError, BufferError e LookupError) e exceções concretas (como AssertionError, AttributeError, EOFError, ImportError e ZeroDivisionError). Você pode ler mais sobre os diferentes tipos de erros na documentação do Python sobre tratamento de exceções.
Como lidar com exceções em Python
Existem quatro tipos principais de tratamento de exceções em Python, que são:
- Tentar: Experimente um trecho de código.
- Exceto: lidar com o erro.
- Outro: Se não houver exceção no código, este código será executado.
- Finalmente: Este código sempre será executado.
Hoje, veremos dois deles: tentar e exceto.
O bom desses manipuladores de exceção é que eles podem avisar o usuário que eles usaram uma entrada incorreta. Você deve se lembrar que vimos ZeroDivisionError exibido em nossa saída de exceção anterior. Você pode realmente codificar isso em seu programa com o exceto opção de forma que avise o usuário que ele usou uma entrada incorreta.
Deixe-me demonstrar. Vamos continuar com nosso programa de divisão, mas fica um pouco mais complicado porque vamos empregar as funções except e try junto com a exceção concreta ZeroDivisionError.
A primeira linha será simplesmente:
try:
Isso informa ao Python para testar o bloco de código a seguir.
As próximas linhas aceitarão a entrada do usuário para definir aeb e então imprimir o resultado. No entanto, porque estamos usando tentar e exceto, Python sabe exatamente o que fazer. Essencialmente, o python tentará o bloco de código e imprimirá os resultados, a menos que o erro de exceção ZeroDivisionError não seja descoberto. Caso o erro seja descoberto, informará ao usuário que não é possível dividir por zero. Crie o programa com o comando:
nano exception.py
Nesse arquivo, cole o seguinte:
try: a = int(input("Type a number: ")) b = int(input("Type another number: ")) result = a / b print(result) except ZeroDivisionError: print("You cannot divide by zero.")
Salve e feche o arquivo.
Execute o programa com o comando:
python3 exception3.py
Insira 90 para o primeiro número e 0 para o segundo. A saída será então:
You cannot divide by zero.
Tente novamente, só que desta vez digite 90 e 9. A saída será:
10.0
Mas o que acontece se um usuário inserir uma letra (ou uma palavra)? Como você lida com esse erro de exceção? Para isso temos ValueError, que pode ser adicionado assim:
except ValueError: print("Please input a valid number.")
Adicione as duas linhas acima na parte inferior do seu arquivo exception.py e feche/salve-o. Execute o programa novamente e insira 90 para o primeiro valor e a para o segundo. A saída será:
Please input a valid number.
Exceção como sim
Há outro método divertido de tratamento de exceções que quero mencionar, que é Exception as e. Demonstrarei esse método usando-o para lançar um IndexError quando um índice de lista estiver fora do intervalo.
Digamos, por exemplo, que criamos uma lista de quatro cores:
colors = ('red', 'blue', 'yellow', 'green')
Em Python, as listas são indexadas começando em 0, então temos:
red = 0 blue = 1 yellow = 2 green = 3
Se adicionarmos uma função de impressão, mas ela exibir o quarto índice, isso causará um erro.
Primeiro, vamos adicionar o seguinte código a um novo arquivo, cores.py:
try: colors = ('red', 'blue', 'yellow', 'green') print(colors(4))
Se executarmos esse programa, ocorrerá o seguinte erro:
File "/home/jack/colors.py", line 4 SyntaxError: expected 'except' or 'finally' block
Isso não é muito útil.
Volte ao programa e adicione um pouco de tratamento de exceções:
except Exception as e: print(e) print('There is no item at index 4.')
Salve e feche o arquivo editado. Ao executar o programa agora, a saída será:
There is no item at index 4.
Esse erro é muito mais compreensível que o anterior.
E é assim, iniciantes em Python, que você pode lidar com exceções em seu código.
A postagem Python: como trabalhar com tratamento básico de exceções apareceu pela primeira vez em The New Stack.