【Python】异常处理结构

文章目录

  • 1.python异常
  • 2.try_except异常处理结构
  • 3.try... 多个except异常处理
  • 4.try_except_else异常处理结构
  • 5.try_except_finally异常处理结构
  • 6.常见报错类型

在运行代码时,总是遇到各种异常,且出现异常时,脚本就会自动的的停止运行,那我们该如何处理异常呢?

1.python异常

在这里插入图片描述
可以看到调用a方法时:想要输出两个内容,但是因为第一个print(2/0)报错,导致下面的内容也被停止执行,有没有可以指出报错地方的同时还可以执行下面的代码

2.try_except异常处理结构

try:可能报错的语句执行体
except (报错异常名称):报错异常的语句执行体

try块包含着可能引发异常的代码,except块则用来捕捉和处理发生的异常。执行的时候,如果 try块中没有引发异常,则跳过ecept块继续执行后续代码;执行的时候,如果try块中发生了异常,则跳过 try块中的后续代码,跳到相应的except块中处理异常;异常处理完后,继续执行后续代码。|

try:print(1)num = 3/0print(2)
except BaseException as e:print(3)print(e)输出
1
3
division by zero

3.try… 多个except异常处理

try:可能报错的语句执行体
except (报错异常名称):报错异常的语句执行体
except (报错异常名称):报错异常的语句执行体
except (报错异常名称):报错异常的语句执行体

跟上面的没有多大的区别,就是根据报错名称,去选择性的执行报错异常体,更好的让客户了解异常出现的原因

try:a = int(input("输入数字:"))b = int(input("输入数字:"))print(a/b)
except ZeroDivisionError:print("除数不能为0")
except ValueError:print("只能输入整数")
except BaseException as e:print(e)
输出:
输入数字:a
只能输入整数输入数字:3
输入数字:0
除数不能为0

4.try_except_else异常处理结构

try…except…else结构增加了“else块”。如果 try块中没有抛出异常,则执行else块。如果trv块中抛出异常,则执行except块,不执行else块。

try:a = int(input("输入数字:"))b = int(input("输入数字:"))c = a/bprint(c)
except ZeroDivisionError:print("除数不能为0")
except ValueError:print("只能输入整数")
except BaseException as e:print(e)
else:print(c*100)输出
输入数字:3
输入数字:2
1.5
150.0

5.try_except_finally异常处理结构

无论代码有没有什么遇到异常,都会执行finally语句,通常是为了释放try资源

try:可能报错的语句执行体
except (报错异常名称):报错异常的语句执行体
finally:必须执行的代码

如果不存在该文件,f.close()就会报错,需要再try,接受异常

try:f = open("D://1.txt","r",encoding="utf-8")data = f.read()print(data)
except FileNotFoundError:print("file文件不存在")
finally:try:f.close()except NameError:print("f没有定义")

6.常见报错类型

错误类型描述
SyntaxError表示代码中存在语法错误。
IndentationError当代码中缩进不正确时发生。
NameError当未找到本地或全局名称时引发。
TypeError表示将操作或函数应用于不适当类型的对象。
ValueError当内置操作或函数收到具有正确类型但不合适值的参数时引发。
KeyError在字典键未找到时引发。
IndexError表示序列下标超出范围。
AttributeError在属性引用或赋值失败时引发。
ImportError当导入语句无法找到要导入的模块或名称时引发。
FileNotFoundError当请求但找不到文件或目录时引发。
IOError在输入/输出操作失败时引发(例如,打开或写入文件)。
ZeroDivisionError在除以零或取模零时引发。
KeyboardInterrupt当用户中断执行(例如,按下 Ctrl+C)时引发。
MemoryError表示操作耗尽了内存。
NotImplementedError当需要在子类中实现的抽象方法未实现时引发。
OverflowError表示算术操作的结果太大无法表示。
RecursionError表示超出了最大递归深度。
SystemExit当 Python 解释器退出时引发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/626585.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

野生动物保护视频AI智能监管方案,撑起智能保护伞,守护野生动物

一、背景 在当今世界,野生动物保护已经成为全球性的重要议题。然而,由于野生动物生存环境的不断恶化以及非法狩猎等活动的盛行,保护野生动物变得尤为迫切。为了更有效地保护野生动物,利用视频智能监管技术成为一种可行的方案。 …

2024年在Vim中开发vue2+java

neovim 0.5刚出来的时代,那时刚有lua插件我很狂热。每天沉迷于打造自己的IDE之中。写过一堆相关的博客,也录过一些视频教程。后来发现neovim的接口和插件更新的很快,导致配置文件要不定期的修改,才能保证新版本的插件的适配。我也…

案例实践 | InterMat:基于长安链的材料数据发现与共享系统

案例名称:InterMat-基于区块链的材料数据发现与共享系统 ■ 建设单位 北京钢研新材科技有限公司 ■ 用户群体 材料数据上下游单位 ■ 应用成效 已建设10共识节点、50轻节点,1万注册用户 案例背景 材料是构成各种装备和工程的物质载体&#xff0c…

bootstrap-select 搜索过滤输入中文问题,前2个字母输入转成空格

bootstrap是v3.3.7的 v1.6.3版本的bootstrap-select,注释以下2行 //that.$menu.find(li).filter(:visible:not(.divider)).eq(0).addClass(active).find(a).focus(); // $(this).focus();

友思特应用 | 红外视角的延伸:短波红外相机的机器视觉应用

导读 短波红外SWIR在不同波段针对不同材料的独特成像特征为各领域检测应用的拓宽提供了基础。本文将展现短波红外成像技术在水分检测、塑料检测、太阳能电池板检查和矿场开采等领域的丰富应用案例,讨论短波红外相机在未来的发展方向。 SWIR 背景简介 短波红外 &am…

使用 wireshark 抓包,在 postman 中模拟请求给小朋友投票

突然某天在微信群里收到了朋友的投票请求,点进去发现不需要授权,我就喜欢这样不需要登录的投票网站 在电脑端微信打开后,微信浏览器右上角可以复制链接 于是,我拿到了这个地址:http://hjkki.cvnxoz.cn/app/YYkEgSzlr…

中科亿海微-CL1656功能验证开发板

I. 引言 A. 研究背景与意义 CL1656是一款精度高、功耗低、成本低的5V单片低功耗运放,由核心互联公司研发制造,CL1656 是一个 16-bit、快速、低功耗逐次逼近型 ADC,吞吐速率高达 250 kSPS,并且内置低噪声、宽 带宽采样保持放大器。…

【Java EE】Spring核心思想(一)——IOC

文章目录 🎍Spring 是什么?🎄什么是IoC呢?🌸传统程序开发🌸传统程序开发的缺陷🌸如何解决传统程序的缺陷?🌸控制反转式程序开发🌸对比总结 🌲理解…

BGA(球栅阵列封装)是主流芯片封装技术 全球市场发展空间大

BGA(球栅阵列封装)是主流芯片封装技术 全球市场发展空间大 BGA,球栅阵列封装,以其封装后形成的图案样式来命名,是一种表面黏着封装技术,可实现高密度表面封装,主要应用于中央处理器、主板南北桥…

如何在Windows安装Ollama大语言模型工具并实现无公网IP异地远程使用

文章目录 前言1. 运行Ollama2. 安装Open WebUI2.1 在Windows系统安装Docker2.2 使用Docker部署Open WebUI 3. 安装内网穿透工具4. 创建固定公网地址 前言 本文主要介绍如何在Windows系统快速部署Ollama开源大语言模型运行工具,并安装Open WebUI结合cpolar内网穿透软…

flstudio21中文版2024最新下载安装及更换皮肤图文详细使用教程

FLStudio21是我见过更新迭代最快的宿主软件,没有之一。FL Studio12、FL Studio20、FL Studio21等等。有时甚至我刚刚下载好了最新版本,熟悉了新版本一些好用的操作,Fl Studio就又推出了更新的版本,而且FL Studio的每次全新版本总能…

中型企业用CRM管理软件,求推荐?

中型企业是指哪些企业呢? 指的是员工人数在数百至数千人之间,年营业额在几千万至数亿元之间的企业。这些企业通常已经形成了较为稳定的业务模式和市场定位,有一定的市场份额和客户基础,同时也在积极拓展新的业务领域和市场空间。…