Python——第五章:处理异常try、except、else、finally
处理异常try 和 except
在 Python 中,try 和 except 语句用于处理异常(错误)。通过使用这两个关键字,你可以编写代码来捕获和处理可能发生的异常,以保持程序的稳定性。
try:
try 代码
except 错误1 as 变量1:
except1代码
except 错误2 as 变量2:
except2代码
except 错误3 as 变量3:
except3代码
else:
没有异常发生时执行的代码
finally:
始终会执行的代码
try块包含可能引发异常的代码。如果发生异常,程序将跳转到except块,执行异常处理代码。except块可以存在多个,你可以使用多个except块来处理不同类型的异常:except块会进行判断,如果符合其中某个except块的错误模式,则执行某个except块下的内容- 为了把所有的异常都接到,通常会使用
except Exception as e:来收尾(因为所有的异常,都是Exception),你可以使用变量(例如e)来获取异常对象的信息,并可以返回输出。 else块中的代码将在try块中的代码没有引发异常时执行。finally块中的代码始终都会执行,无论是否发生异常。
try:
# 代码块,可能引发异常的地方
result = 10 / 0 # 除数不能为0
open("hehehehehehehe", mode="r").read() # 不存在的文件
lst = [] # 空列表不能被迭代
lst.__iter__().__next__()
except ZeroDivisionError:
# 处理除以零的异常
print('除数不能为0!')
except Exception as e:
# 异常处理块,处理发生的异常
print(f'有异常发生: {e}')
else:
# 没有异常发生时执行的代码
print(f'计算结果为: {result}')
finally:
# 始终会执行的代码
print("执行完记得关闭数据库!!!")
抛出异常raise
raise Exception 让程序主动抛出异常,比简单的print()的提示强硬很多
def func(a, b):
if type(a) == int and type(b) == int:
return a + b
else:
# 程序会主动抛出异常,谁调用该函数,谁接收该异常
raise Exception("你提交的不是int类型,func行数如法进行计算") # print("a和b必须为数字")
func("呵呵", 3)
- 谁调用该函数,谁接收该异常
- 架构师经常会做主动抛出异常的操作,会对项目有较强的掌控力。
Python——第五章:处理异常try、except、else、finally的更多相关文章
- Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
- 简学Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
- “全栈2019”Java异常第十五章:异常链详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- Python第五章实验报告
一.实验项目名称:<零基础学Python>第五章实战.实例以及两道作业题 二.实验目的和要求:了解和掌握操作字符串的方法和正则表达式的应用 三.实验环境:IDLE(Python 3.9 6 ...
- Python第五章-内置数据结构05-集合
Python内置数据结构 五.集合(set) python 还提供了另外一种数据类型:set. set用于包含一组无序的不重复对象.所以set中的元素有点像dict的key.这是set与 list的最 ...
- Python第五章-内置数据结构01-字符串
Python 内置的数据结构 到目前为止,我们如果想保存一些数据,只能通过变量.但是如果遇到较多的数据要保存,这个时候时候用变量就变的不太现实. 我们需要能够保存大量数据的类似变量的东东,这种 ...
- 流畅的python第五章一等函数学习记录
在python中,函数是一等对象,一等对象是满足以下条件的程序实体 1在运行时创建 2能复制给变量或数据结构的元素 3能作为参数传给函数 4能作为函数的返回结果 高阶函数(接受函数作为参数或者把函数作 ...
- Python第五章-内置数据结构04-字典
Python 内置的数据结构 四.字典(dict) 字典也是 python 提供给我们的又一个非常重要且有用的数据结构. 字典在别的语言中有时叫关联数组.关联内存.Map等. 字典中存储的是一系列的k ...
- Python第五章-内置数据结构03-元组
Python 内置的数据结构 三.元组(tuple) python 作为一个发展中的语言,也提供了其他的一些数据类型. tuple也是 python 中一个标准的序列类型. 他的一些操作和str和li ...
- Python第五章-内置数据结构02-列表
Python 内置的数据结构 二.列表(list) 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢? 定义100个变量,每个变量存放一个学生的姓名可行吗?有 ...
随机推荐
- Go语言中匿名嵌套和类型嵌套的区别
在Go语言中,匿名嵌套结构体和与类型同名的嵌套结构体不是完全等价的,它们有一些重要的区别.以下是它们之间的主要区别: 字段访问: 匿名嵌套结构体:当你使用匿名嵌套结构体时,内部结构体的字段可以被直接访 ...
- mysql启动失败,报没有pid错误
mysql启动失败,报没有pid错误 安装完Mysql后,启动mysqld失败,花了很长时间才找到原因,现在根据网友提供的解决方法汇总一下,方便遇到时可以参考排查 现象:service mysql s ...
- TiDB的简单介绍以及进行资源限制的方式与方法
TiDB的简单介绍以及进行资源限制的方式与方法 TiDB的简介 TiDB是一个分布式数据库, 简介为: TiDB 是一个开源的分布式关系型数据库,它兼具了分布式数据库的水平扩展性和传统关系型数据库的 ...
- 6. 用Rust手把手编写一个wmproxy(代理,内网穿透等), 通讯协议源码解读篇
用Rust手把手编写一个wmproxy(代理,内网穿透等), 通讯协议源码解读篇 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy githu ...
- C/C++基础——引用与指针有什么区别?C++中输入输出加速
文章目录 1 引用与指针有什么区别? 2 C++中输入输出加速 tie sync_with_stdio 应用 1 引用与指针有什么区别? 指针和引用都是地址的概念,指针指向一块内存,它的内容是所指内存 ...
- 可观测性数据收集集大成者 Vector 介绍
如果企业提供 IT 在线服务,那么可观测性能力是必不可少的."可观测性" 这个词近来也越发火爆,不懂 "可观测性" 都不好意思出门了.但是可观测性能力的构建却着 ...
- linux bond nmcli命令
基本命令: nmcli connection show 显示所有连接nmcli connection show --active 显示所有活动的连接状态nmcli connection show &q ...
- 关于AI时代的程序架构的变化
以ChatGPT为代表的AI出现,表示着AI的零点时刻已经突破.现在AI的使用已经不用再多说了,实际上是已经侵入到各行各业.所有人都在疯狂寻找本行业AI的使用场景,这样的盛景只在互联网刚出现的时候能感 ...
- 一篇了解springboot3请求参数种类及接口测试
SpringBoot3数据请求: 原始数据请求: //原始方式 @RequestMapping("/simpleParam") public String simpleParam( ...
- My Code Style
大家都在写,跟风. 头文件 万能头.因为我刚学 OI 的时候怎么都背不住 algorithm 怎么拼( 变量 数组开全局,一些前后重名/只在某一部分用的变量开局部. 尽量不使用指针/ stl 迭代器等 ...