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

【python基础——异常BUG】

什么是异常(BUG)

检测到错误,py编译器无法继续执行,反而出现错误提示
如果遇到错误能继续执行,那么就捕获(try)
1.得到异常:try的执行,try内可以捕获一个异常
2.预案执行:except后面的语句
3.传入异常:except … as uestc+print(uestc)
4.没有异常:else…
5.鉴定完毕,收尾的语句(必然执行):finally #常应用于f.close()

BUG举例:

打开一个不存在的文件: No such file or directory: ‘不存在的文件’

异常的情况:

1.整个程序因为一个BUG失灵崩溃中断
2.对BUG提醒,程序继续进行(*)
显然,我们遇到的BUG大多因为1,但是我们希望是2

捕获异常:

1.所有异常,提前假设某处出现异常,做好预备工作

 	try:可能发生错误的代码except:应对措施except Exception as e:#exception是所有异常的父类,可以通过不具体指定也了解该异常print("捕捉到异常,你猜猜在哪(。・∀・)ノ")else:print("没有异常(●'◡'●)")finally:print("无论如何你都会看到我,因为我是finally(*/ω\*)")

例子

# f=open("linux.txt","r",encoding="utf-8")#没有此文件,故出现红字提示异常中断
try:f = open("linux.txt", "r", encoding="utf-8")
except Exception as e:print("出现异常,猜猜是谁(。・∀・)ノ:", e)f = open("bug.txt", "w", encoding="utf-8")# 写入不存在的文件会自动创建,但是读入不可以

在这里插入图片描述

2.捕获指定异常 :先运行代码,如果报错,把错误类型复制然后except这种类型异常的处理

   try:print(TOT)except NameError as namebugprint("namebug变量名称未定义错误")

在这里插入图片描述

在这里插入图片描述

3.捕获指定多种异常(但仍然捕获一个,只是不限类型)

  try:a=1/0
except (ZeroDivisionError,NameError) as e2:print("捕捉到异常啦!o(* ̄▽ ̄*)ブ :",e2)

在这里插入图片描述

try:a=1/0 #a=1/10则有异常
except:print("出现异常ヽ(*。>Д<)o゜")
else:print("没有异常φ(゜▽゜*)♪")
finally:print("鉴定完毕,收工(づ ̄ 3 ̄)づ")#不管有无异常都要执行

在这里插入图片描述

在这里插入图片描述

异常的传递

嵌套函数的内部如果异常且没有捕获,那么这个异常会传递给调用它的函数
如果嵌套函数生命周期内都没有捕获异常,程序就会报错


http://www.mrgr.cn/news/83199.html

相关文章:

  • Nginx | 解决 Spring Boot 与 Nginx 中的 “413 Request Entity Too Large“ 错误
  • Qt实现海康OSD拖动Demo
  • Oracle job(定时任务)
  • 【LeetCode】307. 区域和检索 - 数组可修改
  • 国标GB28181-2022视频平台EasyGBS小知识:局域网ip地址不够用怎么解决?
  • 万界星空科技质量管理QMS系统具体功能介绍
  • redis:安装部署、升级以及失败回退
  • 【算法】八大排序算法
  • UI自动化测试框架playwright--初级入门
  • 音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现
  • K-means算法在无监督学习中的应用
  • 第四、五章图论和网络爬虫+网络搜索
  • python虚拟环境的使用
  • C# 对象和类型(结构)
  • ArrayList和HashMap区别
  • 2025新年源码免费送
  • 【JavaEE进阶】获取Cookie/Session
  • 强化学习入门
  • 【C++】16.stack和queue的使用
  • 【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集
  • UI自动化测试保姆级教程--pytest详解(精简易懂)
  • halcon三维点云数据处理(六)find_box_3d
  • 创建Java项目,并添加MyBatis包和驱动包
  • VSCode 中的 launch.json 配置使用
  • 腾讯云AI代码助手编程挑战赛-学习助手
  • Node.js中的fs模块:文件与目录操作(写入、读取、复制、移动、删除、重命名等)