Python学习 - 异常处理

news/2024/5/18 16:01:00/文章来源:https://blog.csdn.net/wanzijy/article/details/126803672

Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855
Python学习 - 数据类型:https://blog.csdn.net/wanzijy/article/details/125341568
Python学习 - 流程控制:https://blog.csdn.net/wanzijy/article/details/125400906
Python学习 - 运算符(操作符):https://blog.csdn.net/wanzijy/article/details/125387919
Python学习 - 列表:https://blog.csdn.net/wanzijy/article/details/125457990
Python学习 - 字典:https://blog.csdn.net/wanzijy/article/details/125567225
Python学习 -元组和集合:https://blog.csdn.net/wanzijy/article/details/125577609
Python学习 - 函数(1):https://blog.csdn.net/wanzijy/article/details/125669084
Python学习 - 函数(2):https://blog.csdn.net/wanzijy/article/details/125739981
Python学习 - 类与对象:https://blog.csdn.net/wanzijy/article/details/125826952
Python学习 - 面向对象之封装:https://blog.csdn.net/wanzijy/article/details/125902925
Python学习 - 面向对象之继承:https://blog.csdn.net/wanzijy/article/details/125963829
Python学习 - 面向对象之多态:https://blog.csdn.net/wanzijy/article/details/127140632
Python - 文件操作(1):https://blog.csdn.net/wanzijy/article/details/127099071
Python - 文件操作(2):https://blog.csdn.net/wanzijy/article/details/127150189
Python学习 - 垃圾回收、特殊方法和模块:https://blog.csdn.net/wanzijy/article/details/126202999
Python学习 - 异常处理:https://blog.csdn.net/wanzijy/article/details/126803672

1. 简介

程序在运行过程当中,不可避免的出现一些错误,这些错误在程序中,称其为异常
程序中一旦出现异常,会导致程序立即终止
程序运行时出现异常,目的并不是让我们的程序直接终止,而是希望在出现异常时,可以编写代码来对异常进行处理

try#  代码块(可能出现错误的语句)
except(异常类型): as 变量#  代码块(出现错误以后的处理方式)
except(异常类型): as 变量#  代码块(出现错误以后的处理方式)else :#  代码块(没出错时要执行的语句)
finally:#  代码块(无论是否发生异常,都会执行的代码块)

try 是必须的,可以没有 else 语句
expect 和 finally 至少有一个
可以将可能出错的代码放入到 try 语句,这样如果代码没有错误,则会正常执行;如果出现错误,则会执行 expect 子句中的代码,这样我们就可以通过代码来处理异常

2. 异常传播

当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再进行传播
如果函数中没有对异常进行处理,则异常会继续向函数调用处传播
异常传播,实际上就是异常对象抛给了调用处

在这里插入图片描述

当程序运行过程中出现异常以后,所有的异常信息都会被保存到一个专门的异常对象

在 Python 中提供了多个异常对象,比如:ZeroDivisionError 类的对象专门用来表示除0的异常;NameError 类的对象专门用来处理变量错误的异常

3. 异常对象

如果 except 后不跟任何的内容,则此时它会捕获到所有的异常
如果在 except 后跟着一个异常的类型,那么它只会捕获该类型的异常

try:print(10/0)
except NameError:print('出现NameError异常')
except ZeroDivisionError:print('出现ZeroDivisionError异常')
except:print('未知异常')

exception 是所有异常的父类,所以如果 execpt 后跟的是 Execption,也会捕获到所有的异常
可以在异常类后边跟着一个“as xx”,此时 “ xx ” 就是异常对象,通过 “ xx ” 可以看到异常的信息

try:print(10/0)
except NameError as e:print(e)
except ZeroDivisionError as e:print(e)  #  division by zero
except Exception as e:print(e)
finally:print('!!!!')  #  一定会执行

4. 自定义异常

raise 语句用来抛出异常
raise 语句后需要跟一个异常类或者异常的实例

def add(a, b):if(a < 0 or b < 0):raise Exceptionr = a + breturn rprint(add(-123, 456))  #  会抛出异常

也可以加上提示的语句

def add(a, b):if(a < 0 or b < 0):raise Exception('出错啦')r = a + breturn rprint(add(-123, 456))  #  抛出异常的同时,出现上述的提示信息:“Exception: 出错啦”

也可以自定义异常类,只需要创建一个类继承 Execption 即可。可以在类中写自己的方法,但一般不需要

def add(a, b):if(a < 0 or b < 0):raise Exception('出错啦')r = a + breturn rprint(add(-123, 456))  #  抛出异常的同时,出现上述的提示信息:“Exception: 出错啦”

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

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

相关文章

什么是软件测试?

什么是软件测试&#xff1f; 软件测试的定义&#xff1a;在一定条件下对软件进行操作&#xff0c;发现软件的问题&#xff0c;提高软件的质量。 软件测试在开发中的有着重要地位。软件测试在各阶段的完成相应的任务&#xff0c;需求测试&#xff0c;架构测试&#xff0c;详细测…

关于windows的文件监控管理系统(Java)

目 录 摘 要 I Abstract II 1.绪论 1 1.1课题背景 1 1.2系统开发的目的和意义 2 1.3国内外概况 3 1.4研究主要内容 3 2.windows文件监控管理系统相关技术介绍 4 2.1 API 4 2.2 API HOOK 5 2.3 Java 5 2.4 DLL 6 2.4 Windows系统的Socket编程 6 2.4.1使用WinSock API 6 2.4.2 使…

MCE | 为什么肥胖经常被“针对”?

近年来&#xff0c;肥胖问题受到越来越多的关注&#xff0c;肥胖不只影响美丽身材&#xff0c;过度肥胖还可能导致肥胖症&#xff0c;这是很多疾病的高风险因素。所以肥胖是一种病&#xff1f;肥胖的标准是什么&#xff1f;别急&#xff0c;等小编慢慢道来。 认识肥胖症 (Obesi…

运动用品品牌排行榜,2022年值得买的运动用品推荐

如今&#xff0c;人们的生活节奏越来越快&#xff0c;工作和生活压力大。因此&#xff0c;人们越来越重视体育运动&#xff0c;通过体育运动达到放松和锻炼身体的目的&#xff0c;运动装备也就跟着火热起来。无论是进行室内或户外活动&#xff0c;选一套合适的运动装备是很有必…

顶象首届业务安全保卫战完美落幕,快来看看TOP10里有没有你!

今年双十一&#xff0c;顶象特别发起了首届业务安全保卫战&#xff0c;旨在召集白帽子们为业务安全贡献自己的一份力量。历经一个月&#xff0c;顶象首届业务安全保卫战已于20日正式落下帷幕。 截止11月20 日&#xff0c;顶象业务安全保卫战通过审核的业务安全情报&业务安…

Jetpack Compose中的state核心思想

Compose 中的状态 应用的“状态”是指可以随时间变化的任何值。这是一个非常宽泛的定义&#xff0c;从 Room 数据库到类的变量&#xff0c;全部涵盖在内。 所有 Android 应用都会向用户显示状态。下面是 Android 应用中的一些状态示例&#xff1a; 聊天应用中最新收到的消息…

MES必懂知识,市场需求下的生产管理系统

任何事物的产生和发展都与市场的需求是分不开的&#xff0c;只有当市场需求新生的事物的时候&#xff0c;他才会兴起&#xff0c;有的事物早已经产生&#xff0c;在当时的环境下并未兴起&#xff0c;却在后来才兴盛&#xff0c;这是市场的需求的影响。 MES便是在市场需求下诞生…

105-120-Hadoop-MapReduce-outputformat:

105-Hadoop-MapReduce-outputformat&#xff1a; OutputFormat 数据输出&#xff0c;OutputFormat接口实现类 OutputFormat是MapReduce输出的基类&#xff0c;所有实现MapReduce输出都实现了 OutputFormat 接口。下面我们介绍几种常见的OutputFormat实现类。 1&#xff0e;O…

系统分析与设计 复习

文章目录系统分析与设计 复习第 1 章 系统分析与设计概述系统特性DevOps第 2 章 系统规划**系统规划步骤**规划模型诺兰模型**CMM 模型**系统规划方法战略集合转换法 SST关键成功因素法 CSF企业资源规划法 BSPCSB 三者联系和区别第 3 章系统分析系统分析概述业务流程图系统流程…

linux进程间通信-FIFO,让你全方位理解

有名管道(FIFO) 有名管道也被称为FIFO文件&#xff0c;是一种特殊的文件。由于linux所有的事物都可以被视为文件&#xff0c;所以对有名管道的使用也就变得与文件操作非常统一。 (1)创建有名管道 用如下两个函数中的其中一个&#xff0c;可以创建有名管道。 #include #include …

我们的程序是如何跑起来的?

1.我们写的代码写完并测试以后是如何部署给用户使用的? 1. 准备所需要的服务器 2. 在服务器上安装JDK、mysql、redis、Tomcat、Nginx等环境 3. 进行mysql、redis、nginx的连接配置 4. 项目打包。前端构建打包成功后在根目录dist文件夹中&#xff1b;后端打成jar包&#xff0c…

用HTML+CSS做一个简单好看的汽车网页

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

第二章 计算机算术

数据表示决定了计算机所执行操作的类型&#xff0c;数据从一个位置传到另一个位置的方法&#xff0c; 以及对存储元件的特性要求。浮点运算是非常重要的&#xff0c;因为它的实现决定了计算机执行复杂图形变换和图像处理的速度&#xff0c; 而且浮点运算对计算的准确度也有很重…

生物素标记试剂:(1458576-00-5,1802908-00-4)Biotin-PEG4-alkyne,Dde-生物素-四聚乙二醇-炔

一、Biotin-PEG4-alkyne 【中文名称】生物素-四聚乙二醇-炔&#xff0c;生物素-四聚乙二醇-丙炔基 【英文名称】 Biotin-PEG4-alkyne 【CAS】1458576-00-5 【分子式】C21H35N3O6S 【分子量】457.58 【纯度】95% 【外观】 淡黄色或白色固体 &#xff08;具体由其分子量大小决定…

XSS game -xss学习

网址 https://xss-game.appspot.com/level1Level 1: Hello, world of XSS payload: <script> alert(1); </script>漏洞产生处: message "Sorry, no results were found for <b>" query "</b>."Level 2: Persistence is key…

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题&#xff1a;哪种智能合约语言更有优势&#xff0c;Solidity 还是 Vyper&#xff1f;最近&#xff0c;关于哪种是“最好的”智能合约语言存在很多争论&#xff0c;当然了&#xff0c;每一种语言都有它的支持者。 这篇文章是为了回答这场辩论最根本的问题&…

Python读取CSV文件,数值精度丢失

Excel保存为csv以后&#xff0c;大数值的列&#xff0c;会把转换为科学计数法&#xff0c;而且后边几位都会被转为0. 搞了很多方法,最后直接安装 openpyxl 组件 和 pandas&#xff0c; 读取Excel文件就行了。 data pd.read_excel("C:/work/20221111AI/cleaned_data_noTi…

WinForm,可能是Windows上手最快的图形框架了

文章目录Label和控件属性按钮和回调逻辑事件常用控件前文提要&#xff1a;超快速成&#xff0c;零基础掌握C#开发中最重要的概念抽丝剥茧&#xff0c;C#面向对象快速上手源码地址&#xff1a;我的第一个WinForm程序 Label和控件属性 WinForm是一门非常经济实惠的技术&#xf…

软件测试V模型

以“编码”为黄金分割线&#xff0c;将整个过程分为开发和测试&#xff0c;并且开发和测试之间是串行的关系 特点&#xff1a; 明确标注了测试的类型 明确标注了测试阶段和开发阶段之间的对应关系 缺点&#xff1a; 测试后置 V模型是基于瀑布模型的&#xff0c;将测试放在…

linux中 ~ / . ..分别表示什么

嵌入式之路&#xff0c;贵在日常点滴 ---阿杰在线送代码 目录 ~ 表示代码主目录&#xff0c;也就是当前登录用户的用户目录。 /是指根目录&#xff1a;就是所有目录最顶层的目录 ./表示当前目录 ..表示上级目录 linux中 ~ 表示的是什么目录&#xff1f; ~ 表示代码主目…