当前位置: 首页 > 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.lryc.cn/news/520773.html

相关文章:

  • 解决Qt打印中文字符出现乱码
  • 第三十八章 Spring之假如让你来写MVC——适配器篇
  • 服务器引导异常,Grub报错: error: ../../grub-core/fs/fshelp.c:258:file xxxx.img not found.
  • 昵称 校验
  • MATLAB学习笔记目录
  • 基于单片机的语音控制玩具汽车的设计
  • Qt WORD/PDF(五)使用Json一键填充Word表格
  • vue3+ts的几个bug调试
  • DVWA靶场CSRF漏洞通关教程及源码审计
  • 前端开发:HTML常见标签
  • 【机器学习】主动学习-增加标签的操作方法-样本池采样(Pool-Based Sampling)
  • 【Rust自学】11.9. 单元测试
  • 深入理解Web存储机制:Cookie、SessionStorage与LocalStorage的区别
  • SpringBoot之BeanDefinitionLoader类源码学习
  • 【芯片封测学习专栏 -- 2D | 2.5D | 3D 封装的区别和联系】
  • 从硬件设备看Linux
  • open3d+opencv实现矩形框裁剪点云操作(C++)
  • git 本地操作
  • PL/SQL语言的文件操作
  • linux lsof 和 fuser命令介绍
  • [Python学习日记-76] 网络编程中的 socket 开发 —— 介绍、工作流程、socket 模块用法和函数介绍
  • vue(七) vue进阶
  • [Transformer] The Structure of GPT, Generative Pretrained Transformer
  • Django Admin 自定义操作封装
  • http和https有哪些不同
  • PL/SQL语言的数据库交互
  • 亿道三防丨三防笔记本是什么意思?和普通笔记本的优势在哪里?
  • 从项目代码看 React:State 和 Props 的区别及应用场景实例讲解
  • Vue 学习之旅:核心技术学习总结与实战案例分享(vue指令下+计算属性+侦听器)
  • freertos的基础(二)内存管理:堆和栈