A exceção do conhecimento básico de Python (5)

anormal

mira

  • Conceito anormal
  • Pegar exceção
  • Parto anormal
  • Lançar uma exceção

01. O conceito de exceção

  • Quando o programa está em execução, se o interpretador Python encontrar um erro, ele interromperá a execução do programa e exibirá algumas mensagens de erro. Esta é uma exceção
  • A ação de interromper a execução do programa e solicitar uma mensagem de erro, normalmente a chamamos de: levantar uma exceção

No desenvolvimento de um programa, é difícil lidar com todas as situações especiais, por meio da captura de exceções é possível lidar com as emergências de forma centralizada, de forma a garantir a estabilidade e robustez do programa.

02. Capture exceções

2.1 Sintaxe simples para capturar exceções

  • No desenvolvimento do programa, se você não tiver certeza se a execução de algum código está correta, você pode adicionar try (tentativa) para capturar a exceção
  • O formato de sintaxe mais simples para capturar exceções:
try:
   尝试执行的代码
except:
   出现错误的处理
  • tente tente, escreva o código para tentar abaixo, não tenho certeza se pode ser executado normalmente
  • exceto se não, escreva o código com falha abaixo

Passo a passo de captura de exceção simples - exigindo que o usuário insira um número inteiro

try:
   # 提示用户输入一个数字
   num = int(input("请输入数字:"))
except:
   print("请输入正确的数字")

2.2 Captura do tipo de erro

  • Quando o programa é executado, diferentes tipos de exceções podem ser encontrados, e diferentes tipos de exceções precisam ser respondidos. Neste momento, é necessário capturar o tipo de erro
  • A sintaxe é a seguinte:
try:
   # 尝试执行的代码
   pass
except 错误类型1:
   # 针对错误类型1,对应的代码处理
   pass
except (错误类型2, 错误类型3):
   # 针对错误类型2 和 3,对应的代码处理
   pass
except Exception as result:
   print("未知错误 %s" % result)
  • Quando o interpretador Python lança uma exceção, a primeira palavra na última linha da mensagem de erro é o tipo de erro

Passo a passo de captura de tipo de exceção - exigindo que o usuário insira um número inteiro

exigem

Solicita que o usuário insira um número inteiro.
Divida 8 pelo número inteiro inserido pelo usuário e produza

try:
   num = int(input("请输入整数:"))
   result = 8 / num
   print(result)
except ValueError:
   print("请输入正确的整数")
except ZeroDivisionError:
   print("除 0 错误")


Capture erro desconhecido

  • Durante o desenvolvimento, é necessário prever todos os erros possíveis, e ainda é um certo grau de dificuldade.
    Se você deseja que o programa não seja encerrado porque o interpretador Python lança uma exceção, você pode adicionar outro, exceto
  • A sintaxe é a seguinte:
except Exception as result:
   print("未知错误 %s" % result)

2.3 A sintaxe completa de captura de exceção

  • No desenvolvimento real, para ser capaz de lidar com exceções complexas, a sintaxe de exceção completa é a seguinte:

incitar:

  • Os cenários de aplicação da gramática completa serão melhor compreendidos no estudo de acompanhamento, combinados com casos reais
  • Agora você pode primeiro ter uma impressão desta estrutura gramatical
try:
   # 尝试执行的代码
   pass
except 错误类型1:
   # 针对错误类型1,对应的代码处理
   pass
except 错误类型2:
   # 针对错误类型2,对应的代码处理
   pass
except (错误类型3, 错误类型4):
   # 针对错误类型3 和 4,对应的代码处理
   pass
except Exception as result:
   # 打印错误信息
   print(result)
else:
   # 没有异常才会执行的代码
   pass
finally:
   # 无论是否有异常,都会执行的代码
   print("无论是否有异常,都会执行的代码")
  • senão o código que será executado apenas quando não houver exceção
    f * nalmente o código que será executado independentemente de haver ou não uma exceção

O código para capturar completamente a exceção é o seguinte:

try:
   num = int(input("请输入整数:"))
   result = 8 / num
   print(result)
except ValueError:
   print("请输入正确的整数")
except ZeroDivisionError:
   print("除 0 错误")
except Exception as result:
   print("未知错误 %s" % result)
else:
   print("正常执行")
finally:
   print("执行完成,但是不保证正确")

03. Entrega anormal

  • Transmissão de exceções - quando ocorre uma exceção na execução de uma função / método, a exceção será passada para a parte chamadora da função / método
  • Se for passado para o programa principal e ainda não houver tratamento de exceção, o programa será encerrado

incitar

  • Em desenvolvimento, você pode adicionar captura de exceção na função principal
  • Outras funções chamadas na função principal, desde que haja uma exceção, serão passadas para a captura de exceção da função principal
  • Desta forma, não há necessidade de adicionar muitas capturas de exceção no código, o que pode garantir a limpeza do código

exigem

  • Defina a função demo1 () para solicitar que o usuário insira um número inteiro e retorne
  • Defina a função demo2 () para chamar demo1 ()
  • Chame demo2 () no programa principal
def demo1():
   return int(input("请输入一个整数:"))
​
​
def demo2():
   return demo1()try:
   print(demo2())
except ValueError:
   print("请输入正确的整数")
except Exception as result:
   print("未知错误 %s" % result)

04. Levantar exceção

4.1 Cenários de aplicação

  • No desenvolvimento, exceto para erros de execução de código, o interpretador Python lançará exceções
  • Ele também pode lançar ativamente exceções de acordo com as necessidades específicas de negócios do aplicativo

Exemplo

Peça ao usuário para inserir a senha, se o comprimento for menor que 8, lance uma exceção
Insira a descrição da imagem aqui

Nota

  • A função atual é apenas responsável por solicitar que o usuário insira a senha. Se o comprimento da senha estiver incorreto, outras funções são necessárias para processamento adicional

  • Portanto, uma exceção pode ser lançada, e a exceção pode ser capturada por outras funções que precisam ser tratadas

4.2 Lançar uma exceção

  • Python fornece uma classe de exceção Exception
  • Durante o desenvolvimento, se você deseja lançar uma exceção ao atender a requisitos específicos de negócios, você pode:
    Criar um objeto Exception
    Use a palavra-chave raise para lançar um objeto de exceção

exigem

  • Defina a função input_password para solicitar que o usuário insira a senha
  • Se o comprimento da entrada do usuário for <8, lance uma exceção
  • Se o comprimento de entrada do usuário> = 8, retorne a senha de entrada
def input_password():# 1. 提示用户输入密码
   pwd = input("请输入密码:")# 2. 判断密码长度,如果长度 >= 8,返回用户输入的密码
   if len(pwd) >= 8:
       return pwd
​
   # 3. 密码长度不够,需要抛出异常
   # 1> 创建异常对象 - 使用异常的错误信息字符串作为参数
   ex = Exception("密码长度不够")# 2> 抛出异常对象
   raise ex
​
​
try:
   user_pwd = input_password()
   print(user_pwd)
except Exception as result:
   print("发现错误:%s" % result)

Acho que você gosta

Origin blog.csdn.net/weixin_42272869/article/details/113696313
Recomendado
Clasificación