O tratamento do ar nos permite deixar o script continuar em execução, mesmo se houver um erro.
Vamos tentar um exemplo para mostrar como podemos fazer manuseio de ar e python.
Digamos que desejamos criar um programa que nos permite obter a entrada de um usuário.
Digamos que pedimos ao usuário um H.
Então, usamos o prompt de entrada e perguntamos: qual é a sua idade?
E então aqui ou o que faremos é apenas imprimir o programa simples e agradável se eu executar isso.
E eu digito, digamos, 10.
Ai está.
Tudo está funcionando, mas e se eu não inserir um número e continuar assim?
Bem, isso ainda funciona, mas é isso que eu queria fazer com meu programa, talvez eu quisesse inserir a idade
e calcular se eles podem ou não jogar o jogo, sejam eles maiores de 18 anos, como podemos consertar
isto?
Bem, uma coisa que podemos fazer é apenas embrulhar isso em um ENT, certo, então convertemos tudo o que o usuário
nos dá em um inteiro para que se eu executar isso.
E eu digito isso.
Ah, recebo um erro, um erro de valor litoral inválido para int, estou tentando converter.
Isso em um número inteiro, mas está me dizendo que é um erro, não posso fazer isso.
Então, como podemos corrigir isso com o tratamento de erros em Python?
Podemos fazer assim.
Temos os loops tri, temos o teclado tri, que diz, ei, quero que você experimente esse trecho de código e temos que nos
certificar de que o inventamos.
Então, tentamos este pedaço de código.
Agora, qualquer coisa que aconteça dentro do tri block.
Eu sou capaz de lidar.
Veja de onde vem o manuseio, áreas com a palavra-chave de aceitação.
E aceite.
Diz, ei.
Se houver alguma coisa aqui no bloco tri, se alguma coisa sair do ar, quero que diga algo.
Então, em vez de ter esse ar vermelho que sai do programa, faça outra coisa.
Fazem isto.
Então vou dizer.
Imprimir, digite um número.
Vamos ver o que acontece agora.
Se eu clicar, corra.
Qual a minha idade
Vou apenas escrever rabiscos.
E olhe para isso, eu recebo, digite um número.
Estou lidando com meus erros aqui, envolvendo todo o meu código em um bloco try, para que eu pudesse apenas copiar o Basehead meu arquivo
inteiro aqui, colocá-lo dentro de um bloco try.
E o que vai acontecer é que, em vez de meu programa ir ao ar antes que meu programa trave,
ele vai rodar este código e então vai dizer, ei, se algo acontecer dentro deste bloco, vamos pegar aqui
com o bloco except .
E eu posso ouvir.
Faça o que eu quiser no meu caso, posso dizer, ei, por favor digite nosso número, mas temos o nosso problema aqui,
certo?
O programa acabou de terminar e queremos que continue em execução.
Tenho que correr de novo e pedir o H mais uma vez.
Então, como você pode ter certeza de que continuaremos executando isso até que o usuário realmente insira algo correto?
Bem, já vimos isso antes, podemos fazer um loop while e dizer while true.
Ron, isso.
E se isso funcionar.
Bem, nós vamos.
Esperançosamente, pegue o H, vamos ver se eu clicar em correr tinha a minha idade, digamos.
Não, digite um não, qual é a sua idade?
Vamos tentar quebrá-lo novamente.
Não, por favor insira nosso número.
Certo, certo.
Minha idade é 10 anos.
Pronto, recebo o nome 10, mas ainda me pergunta qual é a minha idade.
Idealmente, eu quero quebrar essa afirmação verdadeira, certo, então como posso fazer isso?
Bem, posso usar o que chamamos aqui e outro bloco, que vimos antes.
Mas isso funciona com um bloco try except.
Colocamos no final.
Diz, ei, tente isso.
Se não houver ninguém, faça isso.
No entanto, se não houver nenhum outro lugar, faça isso.
Portanto, em nosso caso, podemos apenas dizer pausa.
E sabe de uma coisa, podemos até imprimir um agradecimento, apenas para ficarmos bem se eu parar com isso e executar novamente.
E eu dou a eles minha idade.
Ai está.
Terminamos, saímos do loop e está tudo bem.
E esse bloco tri except else pode ir a qualquer lugar, podemos agrupar nosso arquivo inteiro em um bloco try except, podemos apenas
adicioná-lo em nossas funções dentro de cada uma de nossas funções individuais.
O que quisermos, podemos usar.
Esta é apenas mais uma ferramenta que o Python nos oferece para lidar com Eres.
Mas deixe-me perguntar uma coisa.
E se eu fizesse em vez de imprimir, o que eu fiz, digamos dez dividido pela idade?
Se eu executar meu programa.
E eu digito aqui zero e entro.
Oh, eu cheguei lá, por favor digite um número, mas eu digitei um número.
Este é um programa com bugs, embora eu esteja digitando um número, ele ainda está me dando a mesma mensagem de erro.
Então, como vamos lidar com isso?
Como lidamos com diferentes erros, um onde é um erro de valor e outro que é obviamente um erro
de divisão zero?
Bem, no bloco except, posso simplesmente indicar o tipo de erro que desejo tratar e lembrar, estes são erros incorporados aqui
que posso simplesmente copiar e colar.
Portanto, no meu caso, eu quero dizer que isso é um erro de valor, se eu executar meu programa.
E eu digito zero.
Oh, eu entendo meu ar, exceto o bloco só aceita avaliadores, quaisquer outros erros com os quais ele não se importe.
Hmm.
Então, o que podemos fazer aqui?
Bem, uma opção é copiar aqui e dizer, ei, vamos adicionar outro, exceto e, neste
caso, eu quero um erro de divisão zero caso um usuário insira zero, você pode dizer por favor insira a idade maior que zero.
Então, se eu executar isso agora.
E eu faço zero de novo, digite um valor maior que zero se eu fizer algo sem sentido, oops, se eu fizer algo sem sentido, eu obtenho,
digite um número se eu finalmente inserir um número.
Olhe para isso.
Obrigada.
Tudo está funcionando.
Agora, aqui está a minha pergunta, o que acontece se entrarmos?
Outro erro de valor aqui e este erro de valor vai apenas dizer pontos de exclamação.
O que acontece agora?
Eu entendo, por favor, digite um número, porque esse bloco exceto vai rodar apenas uma vez, assim que pegar o ar,
ele está procurando para rodar.
E então volte para o loop de arame.
Portanto, apenas um dos herdeiros será capturado.
OK, vamos fazer uma pausa e aprender mais sobre tratamento de ar no próximo vídeo.
Tchau.