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
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)