当前位置: 首页 > news >正文

Python中的异常处理

异常

""" 异常(Exception): 1.什么是异常? python运行时,发生的错误,而导致程序最终无法执行,异常! 思考:有没有出现错误? 编译过程中的错误,红色波浪线 运行过程中的错误,编译通过,但是运行之后报错 补充: 特性:运行时发生红色的错误,终止程序 异常的父类:BaseException 2.如何处理异常? try: 可能会出现问题的代码 except [抓取异常的类型 as e]: 处理的结果 """

示例

#异常示例#1 分母不能为0print("运行前")try:res=10/0#ZeroDivisionErrorprint(res)exceptZeroDivisionErrorase:print(e)print("运行后")#运行结果运行前 division by zero 运行后#2 文件不存在try:withopen("../exception/a.txt","r",encoding="utf-8")asf:print(f.read())exceptFileNotFoundErrorase:print(e)print("读取后")#运行结果[Errno2]No suchfileordirectory:'../exception/a.txt'读取后#3 转换异常str1="zhangsan"try:res=int(str1)exceptValueErrorase:print(e)print("转换后")#运行结果invalid literalforint()withbase10:'zhangsan'转换后

处理异常

""" 处理异常 1.异常的复杂格式 try: 可能会出现问题的代码 except [抓取异常类型 as 别名]: 处理代码 [else: 没有发生异常处理的代码 finally: 作用:一般用来关闭文件或者释放资源的 异常的处理出口 ] 2.合并处理异常 -了解 try: 异常代码 except (异常1,异常2,异常3......异常n) as e: 3.处理多级异常 注意: except可以写多个,分别抓取不同的异常信息 一般情况下,异常处理的对象(范围越小,异常信息更准确)越小越好 父异常一般写在子异常之后 """

异常的复杂格式

#1 案例:处理文件异常f=Nonetry:f=open('test.txt',"r",encoding="utf-8")res=f.read()print(res)exceptExceptionase:print("文件找不到")else:print("当前正常")finally:print("程序正在执行finally块")iffisnotNone:#在写finally时需要加判断f.close()

合并处理异常

#2 合并异常格式try:res=10/0#division by zerores2=int("lisi")#ValueErrorexcept(ZeroDivisionError,ValueError)ase:print(e)

多个异常处理

#3 多个异常处理#案例:读取文件内容,转换为int,再除以0try:f=open('test.txt',"r",encoding="utf-8")res=int(f.read())res=res/0print(res)exceptFileNotFoundErrorase:print(e)exceptValueErrorase:print(e)exceptZeroDivisionErrorase:print(e)exceptExceptionase:print(f"不可预估的错误{e}")

案例——自定义异常

""" 异常实现登录案例 !!!自行抛出异常时,需要使用raise """
#自定义异常classMyException(Exception):msg=""def__init__(self,msg):self.msg=msg#模拟数据库的用户数据username_mysql="zhangsan"password_mysql="123"deflogin(username,password):#1 用户名是否存在ifusername_mysql!=username:#抛出一个自定义异常raiseMyException("用户不存在")#2.密码是否准确ifusername==username_mysqlandpassword!=password_mysql:raiseMyException("密码错误")#3 是否登录成功returnTrueif__name__=='__main__':username=input("username: ")password=input("password: ")try:login(username,password)exceptExceptionase:print(e)else:print("ok")

http://www.jsqmd.com/news/263664/

相关文章:

  • 马斯克2026采访详解:中国AI算力将远超世界,世界变化的奇点即将到来!
  • 学长亲荐2026 TOP8 AI论文网站:专科生毕业论文神器测评
  • 强烈安利8个AI论文软件,MBA毕业论文轻松搞定!
  • 语音识别大模型原理 - 详解
  • AI+时代:程序员必知的就业转型与技能提升指南
  • YOLOv11性能暴涨方案:Mamba-MLLA注意力机制实战集成,精度与速度双提升
  • (6-4)常见类的继承关系
  • 针对Grok接入美国军方奇点先生分析后给出了三封公开信
  • 2026年AI发展新主线:从模型到系统,小白到程序员的必学之路
  • 2026年大模型学习路线:从零基础到精通的全面指南_AI大模型应用开发学习路线(2026最新)
  • 大模型技术路线图:从Transformer到AI Agent的完整学习路径【珍藏版】
  • YOLOv8科研级轻量化升级:基于SOTA ADown的高效下采样设计
  • include文件包含及c底层调试
  • 8大AI学术工具横向评测:写作与降重功能实测,助力高效论文产出
  • 一文吃透图像超分辨率:SRResNet核心原理与实战实现
  • 从曲面到清晰文字:工业视觉如何实现酒瓶标签100%可读
  • Jenkins 流水线全流程实战笔记
  • 可直接商用的疲劳驾驶检测系统:基于 YOLOv10 的完整实战(源码 + UI 全开)
  • WPF资源系统
  • RK3588端实时人体姿态识别方案:YOLOv11-Pose高精度落地,推理速度直接拉满
  • union 和 union all的区别
  • Flutter 3.22+ 高性能开发实战:从状态管理到原生交互全解析 - 指南
  • 【大数据毕设选题推荐】基于Hadoop+Spark的起点小说网数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
  • 8B小模型后训练实战:企业私域语义空间稳定性与通用能力平衡指南
  • 2026首发版,自学AI大模型的正确顺序:最新最全学习路线
  • 【计算机毕设推荐】:Hadoop+Django气象地质灾害大数据可视化系统 毕业设计 选题推荐 毕设选题 数据分析 机器学习
  • 大模型选择困难症?8款主流AI助手(GPT/Claude/GLM等)特点与适用场景详解,建议收藏
  • linux 设置 udp 缓冲区大小的方法有多少种
  • 程序员转型AI产品经理完整指南:大模型时代必备技能与学习路径
  • 关于SSD1315/SSD1306的0xDA指令