Python基础知识:整理10 异常相关知识

1 异常的捕获

1.1 基础写法

"""基本语法:try:可能发生错误的代码except:如果出现异常,将执行的代码"""
try:fr = open("D:/abc.txt", "r", encoding="utf-8")
except:print("出现异常了,文件未找到!将以w模式写入")fr = open("txt/abc.txt", "w", encoding="utf-8")fr.write("我是出现异常时的文件")

1.2 捕获指定的异常

try:1/0
except ZeroDivisionError as e:print(e)

 

1.3 捕获多个异常

"""捕获多个异常:语法格式:try:print(1/0)except (ZeroDivisionError,NameError) as e:    通过元组的形式存放多个异常类型print(e)  
"""
try:print(1/0)
except (ZeroDivisionError, NameError) as e:print(e)

1.4 捕获所有异常

"""捕获所有异常:方式一:基本语法:try:可能发生错误的代码except:如果出现异常,将执行的代码方式二: 略语法格式:try:print(1/0)except Exception as e:print(e)
"""
try:print(1 / 0)
except Exception as e:print(e)

 

1.5 异常else

"""异常else:当没有异常发生时,执行else中的代码  (可选的)
"""
try:print(1)
except Exception as e:print(e)
else:print("没有异常发生!")

1.6 异常finally

"""异常finally:无论是否发生异常,都会执行finally中的代码  (可选的)
"""
try:fr = open("txt/abc.txt", "r", encoding="utf-8")print(fr.readline())
except Exception as e:print(e)
else:print("没有异常发生!")
finally:fr.close()

2 异常的传递性

"""异常具有传递性例:当函数func1中抛出异常时,并且没有捕获处理这个异常的时候,异常会传递到函数func2中,如果func2中也没有捕获处理这个异常,那么异常会继续传递到main函数中,main函数就会捕获这个异常,这就是异常的传递性注意:当所有函数都没有捕获异常的时候,程序就会报错!
"""

当在主函数中没有捕获处理异常时,会报异常错误

处理后 

def func1():print("func1开始执行")num = 1/0print("func1执行完毕")def func2():print("func2开始执行")func1()print("func2执行完毕")def main():print("main开始执行")try:func2()except Exception as e:print(e)print("main执行完毕")main()

 

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

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

相关文章

APM传感器校准

文章目录 前言一、校准加速度计二、校准罗盘三、校准陀螺仪四、校平地平线 前言 固件:rover 4.2.3 地面站:独家汉化版QGC 一、校准加速度计 点击左上角软件图标-》载具设置-》传感器-》加速度计 飞控方向默认为None即可,点击确定 点击确…

德语怎么翻译,中文翻译成德文有何要求?

近年来,随着中德之间的贸易往来日益频繁,德语翻译需求在市场上持续升温。那么,如何做好德语翻译,特别是将中文翻译成德文需要注意哪些要求呢? 首先,深入理解中文原文的语境和含义至关重要。中文含蓄且抽象&…

存储的基本架构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、存储的需求背景二、自下而上存储架构总结 一、存储的需求背景 1、人的身份信息需要存储 这种信息可以用关系型数据库,例如mysql,那种表…

c++的宏举例和理解

宏提供了一种机制,能够使你在编译期替换代码中的符号或者语句。当你的代码中存在大量相似的、重复的代码时,使用宏可以极大的减少代码量,便于书写。 // 定义圆周率 #define PI 3.14159265 // 定义一个空指针 #define NULL ((void*)0) // 定…

第十二章 Java内存模型与线程(二)

文章目录 12.4 Java与线程12.4.1 线程的实现12.4.2 Java线程调度12.4.3 状态转换 12.4 Java与线程 12.4.1 线程的实现 实现线程主要有三种方式:使用内核线程实现(1: 1 实现),使用用户线程实现(1&#xff…

CMake入门教程【高级篇】自定义的构建命令add_custom_command

文章目录 1.概述信息2.命令作用3.完整代码示例4. 实际使用中的技巧1.概述信息 add_custom_command是一个非常强大的工具,它允许用户定义在构建过程中执行的自定义命令。这可以用于生成源文件、执行前后处理步骤、自动化测试等。 #mermaid-svg-9icMsOnoxbNTRCu0 {font-family:…

A Charming Algorithm for Count-Distinct

如何估计不重复元素的个数 本文提出一种很有趣的算法,估计一个数列里面不重复元素的个数,关键是它只使用指定大小的内存。 I recently came across a paper called Distinct Elements in Streams: An Algorithm for the (Text) Book by Chakraborty,…

FFmpeg 入门

1. 编译 参考文档:FFmpeg编译和集成(FFmpeg开发基础知识),重点注意这句话: 在MSYS2 Packages可以查到云仓库有哪些包,直接安装可节约大量时间。 注意:这个路径可自定义 吐槽 在看到这篇文章之前,花了大…

腾讯云服务器购买指南,2024更新购买步骤

腾讯云服务器购买流程很简单,有两种购买方式,直接在官方活动上购买比较划算,在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动…

【银行测试】银行项目,信用卡业务测试+常问面试(三)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行测试-信用卡业…

产品经理之基础必备知识点

目录 前言 一.用户画像 1.1含义 1.2 举例说明 二.MVP(最小可行产品) 1.1含义 1.2 优缺点 三.体验地图 3.1 含义 3.2 举例说明 四.产品路线图 4.1 含义 4.2 举例说明 五.用户故事 5.1 含义 5.2 举例 六.用户故事地图 七.敏捷开发 7.1 含义 7.2 …

C++I/O流——(3)文件输入/输出(第二节)

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 含泪播种的人一定能含笑收获&#xff…

[M链表] lc82. 删除排序链表中的重复元素 II(单链表+好题+模拟)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接:82. 删除排序链表中的重复元素 II 相似题目:[E链表] lc83. 删除排序链表中的重复元素(单链表模拟) 2. 题目解析 这个题目与 83 题都很类似,一个是将重复元素全部删除,另一个…

面试宝典之ElasticSearch面试题

E01、什么是倒排索引? ES分词器通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索…

检索增强生成的多模态信息:综述

英文原文地址:Retrieving Multimodal Information for Augmented Generation: A Survey 随着大型语言模型(LLMs)的流行,出现了一个重要趋势,即使用多模态来增强 LLMs 的生成能力,从而使 LLMs 能够更好地与…

Github项目推荐-clone-voice

项目地址 GitHub - jianchang512/clone-voice 项目简述 一个声音ai工具。基于python编写。作用是音色复用。下面是官方说明:“这是一个声音克隆工具,可使用任何人类音色,将一段文字合成为使用该音色说话的声音,或者将一个声音使…

行为型设计模式——模板方法模式

学习难度:⭐ ,比较常用 模板方法模式 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知&#xff0…

SpringBoot项目的两种发布方式(jar包和war包)

SpringBoot项目的两种发布方式&#xff08;jar包和war包&#xff09; 在springboot入门和项目示例这个项目和application.yml配置端口号和访问url路径基础上进行修改 1、使用jar包方式发布 1.1、在pom.xml中添加一个SpringBoot的构建的插件 <build><plugins>&l…

腾讯云服务器多少钱?2024年腾讯云服务器报价明细表

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

测试人,你还在写用例吗?是什么在支撑着你写?

测试交付的过程&#xff0c;通常是伴随的是一个测试用例生命周期过程&#xff0c;通常有测试需求分析、测试用例设计、测试用例实现、测试用例执行&#xff0c;以及测试用例管理等几个阶段组成。 为什么要有测试用例&#xff1f; 首先测试用例这是测试岗位的基本交付物之一。开…