Manipulação de exceção do Python

Manipulação de exceção do Python

Introdução

Python informará quando você errar sua sintaxe errada. Falhará imediatamente e não permitirá que seu programa seja executado.

E quando seu código tem um tipo diferente de problema? Essas são chamadas de exceções e tendem a ser mais difíceis de capturar. Cabe a você reconhecer situações em que Hey pode aparecer e pegá -las para impedir que seu programa trave completamente.

Imagine um cenário em que você precisa de entrada do usuário. Deseja que seu programa trave toda vez que um usuário confunde algo ou insere algo errôneo? Isso está longe de ser ideal. Como você sabe que pode haver um problema lá, você pode dizer a Python para cuidar de um e se recuperar graciosamente.

Tente e exceto

Quando você sabe que há uma chance de uma exceção aparecer, você pede a Python para experimentar o pedaço de código e procurar uma exceção. Dê uma olhada no contexto do exemplo de exemplo de antes.

Tente: número = int (input ("Digite qualquer número:")) Exceto: print ("que não funcionou ...") 

Agora, em vez de travar, seu programa continuará, mesmo que o usuário digite lixo.

Você também pode dizer ao Python exatamente que tipo de exceção procurar. Nesse caso, seria um ValueError.

Tente: número = int (input ("Digite qualquer número:")) Exceto ValueError: Print ("Você não inseriu um número!") 

Se o Python souber que tipo de exceção está procurando, você pode dizer como responder de acordo.

Faça o seu próprio

Você pode fazer suas próprias exceções escrevendo -as como classes que herdam do Exceção classe base ou qualquer uma das outras classes de exceção.

Classe NewException (exceção): Pass 

Você precisa desenvolver seu programa como usar suas exceções personalizadas.

Levantando exceções

Há uma opção para aumentar manualmente exceções com elevação.

Tente: Levante NewException, exceto NewException: Print ("Falhou como planejado!") 

Exceto múltiplo

Se você espera que possa haver mais de uma exceção, você pode construir múltiplos com tentar. Comece fazendo algumas exceções personalizadas.

Classe ExceptionA (exceção): ExceptionB da classe Pass (exceção): Pass 

Agora, use -os com tentar.

Tente: Levante a exceção, exceto (exceção, exceção): Print ("Era A ou B") 

Claro, esse não é o melhor porque em um cenário real, você não saberia qual exceção realmente ocorreu.

Tente usar separado, exceto cláusulas.

Tente: Levante a exceção, exceto exceção: print ("exceção ocorreu"), exceto ExceptionB: Print ("ExceptionB ocorreu"), exceto: print ("algo mais aconteceu ...") 

O terceiro exceto Atos para capturar qualquer outra exceção. Esse é o comportamento padrão quando uma exceção específica não é dada.

Mais e finalmente

Existem duas cláusulas adicionais para lidar com o que acontece após as exceções são tratadas. Eles ajudam seu código a responder a exceções.

O outro Cláusula permite que você execute o código apenas se uma exceção não tiver sido levantada.

Tente: número = int (input ("Digite qualquer número:")) Exceto ValueError: Print ("Você não inseriu um número!") caso contrário: imprimir (número ** 2) 

Você só quer tentar executar uma operação no número se for inserido.

O finalmente Causa será executada independentemente de qualquer exceção. Sempre será executado no final do tentar bloquear.

Tente: número = int (input ("Digite qualquer número:")) Exceto ValueError: Print ("Você não inseriu um número!") else: imprimir (número ** 2) finalmente: print (" Isso sempre será executado.") 

Pensamentos finais

É importante entender o que pode dar errado com seus programas. É tão importante saber que isso vai dar errado. Ao considerar exceções, você pode tornar seu código o mais estável possível e não frustrar seus usuários.

Exercícios

  1. Crie algum código que aumente uma exceção não tratada.
  2. Use um bloco de tentativa para lidar com essa exceção.
  3. Crie uma classe de exceção personalizada
  4. Aumente essa exceção personalizada em um bloco de tentativa.
  5. Crie um bloco de tentativa com um pedaço de código que só seja executado se uma exceção não for aumentada.

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Manipulando a entrada do usuário em scripts bash
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como travar o Linux
  • Como usar o ADB Android Debug Bridge para gerenciar seu Android…
  • Tutorial de depuração do GDB para iniciantes
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Ubuntu 20.04 Guia
  • Sistema Linux Hung? Como escapar para a linha de comando e…