10.Python异常处理

为增强程序的健壮性,我们也需要考虑异常处理方面的内容。例如 ,在读取文件时需要考虑文件不存在、文件格式不正确等异常情况。这 就是本章要介绍的异常处理。

1 第一个异常——除零异常

在数学中,任何整数都不能除以0,如果在计算机程序中将整数除 以0,则会引发异常。 示例代码如下:

通过Python指令运行文件,输出结果。

2 捕获异常

我们不能防止用户输入0,但在出现异常后我们能捕获并处理异常 ,不至于让程序发生终止并退出。亡羊补牢,为时未晚。

2.1 try-except语句

异常捕获是通过try-except语句实现的,基本的try-except语句的语法 如下。 在try代码块中包含在执行过程中可能引发异常的语句,如果没有发 生异常,则跳到except代码块执行,这就是异常捕获。 try-except语句的执行流程如下。

2.2 多个except代码块

多条语句可能会引发多种不同的异常,对每一种异常都会采用不同 的处理方式。针对这种情况,我们可以在一个try后面跟多个except代码 块,语法如下:

示例代码如下:

2.3 多重异常捕获

 

2.4 try-except语句嵌套

try-except语句还可以嵌套,修改10.2.2节的示例代码如下:

3 使用finally代码块释放资源

有时在try-except语句中会占用一些资源,例如打开的文件、网络连 接、打开的数据库及数据结果集等都会占用计算机资源,需要程序员释 放这些资源。为了确保这些资源能够被释放,可以使用finally代码块。 在try-except语句后面还可以跟一个finally代码块,语法如下。

通过Python指令运行文件,输出结果:

4 自定义异常类

实现自定义异常类的示例代码如下:

5 动动手——手动引发异常

6 练一练

1 请列举一些常见的异常。

2 手动引发异常的语句有哪些?()

A.throw

B.raise

C.try

D.except

3 判断对错:(请在括号内打√或×,√表示正确,×表示错误)。

1)每个try代码块都可以伴随一个或多个except代码块,用于处理tr y代码块中所有可能引发的异常。()

2)为了确保这些资源被释放,可以使用finally代码块。()

3)实现自定义异常类时,需要继承Exception类或其子类。()

4)为了提供程序的健壮性,我们应该对所有类型异常都进行捕获 。()

5)一个整数除以0时会引发ValueError异常。()

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

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

相关文章

PCL 计算点与圆的距离(3D)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 3D中的圆可以有圆心、半径以及法线来进行表示,如下图所示: 这里我们假设: Δ = P − C \Delta=P-C Δ

Wasm初上手

总之也是为了扩宽技术面吧。。。我也不知道为什么就想试试了,就酱。 参考阅读:极客时间《WebAssembly入门课》 安装wasm的编译器Emscripten。Emscripten 是一个“源到源”语言编译器工具集,这个工具集可以将 C/C 代码编译成对应 JavaScript 代…

【PostgreSQL】- 1.4 PostgreSQL 业务规划(创建 Schema)

业务规划与创建 Schemas 如果实际场景,有业务A、业务B、业务C,推荐的方式是在同一个数据库中为每个业务创建不同的 schema。然后,你可以为每个业务创建不同的账户,并赋予这些账户对应业务的 schema 权限。这种方式的好处是&#…

CSS使用clip-path实现元素动画

前言: 在日常开发当中,如果想要开发多边形,一般都需要多个盒子或者伪元素的帮助,有没有一直办法能只使用一个盒子实现呢? 有的:css裁剪 目录 前言: clip-path到底是什么? clip-pa…

【御控物联】 JavaScript JSON结构转换(4):对象To对象——规则属性重组

文章目录 一、JSON结构转换是什么?二、术语解释三、案例之《JSON对象 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

赋值语句还能当判断条件?涨芝士了!

赋值和条件看似是C语言中毫不相关的两个概念,虽然实际过程中我猜测不会有太多这种不太符合常理的情况出现,但是现在在学习的过程中,为了出题而出题总是会整出一些花活出来.....这很难不让人联想起高中时一些大佬为了彰显自己的数学天赋而自己…

C++类基础7——移动构造函数,移动赋值运算符

右值引用只不过是一种新的C语法,真正理解起来有难度的是基于右值引用引申出的2种C编程技巧,分别为移动语义和完美转发。 左值、右值、将亡值: 概念: 从以下几个概念逐步深入: 表达式: 要说清“三值”&…

树莓派串口读取陀螺仪ky9250(mpu9250)数据

9轴姿态角度传感器,其中ky9250陀螺仪由于自带卡尔曼动态滤波算法方便用户使用。ky9250陀螺仪基本可以在各个平台上进行数据的读取(如stm32\arduino\C#\Matlab\树莓\Unity3d\python\ROS\英飞凌\Nvidia jetson linux 等) 1、树莓派和ky9250的接…

[报错解决]Type com.baomidou.mybatisplus.extension.ddl.IDdl not present

springboot整合mybatis-plus关键报错信息 在处理mybatis-plus时遇到的问题,现提供解决方案供参考: org.springframework.beans.factory.BeanCreationException: Error creating bean with name com.baomidou.mybatisplus.autoconfigure.MybatisPlusAu…

C++_第五周做题总结_类与对象

id:27 A.对象数组(类和对象) 题目描述 课堂上我们谈到类这个概念,比如第一题我们有学生类这个抽象的概念,成千上万个学生都具有同样的属性,但针对某个具体学生来说,他/她具有自己的鲜明个性,比…

AcWing刷题-区间合并

校门外的树 区间合并: from typing import List def merge(intervals: List[List[int]]) -> List[List[int]]:# 按照第一个元素从小到大进行排序intervals.sort(keylambda x: x[0])# 初始化一个新的数组new_list list()for i in intervals:# 把第一个数组元素添…

基于ssm旅游资源网站(java项目+文档+源码)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的旅游资源网站。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 旅游资源网站的主要使用者分为管理…

描述C语言中的进程和线程之间的区别

描述C语言中的进程和线程之间的区别 在C语言中,进程和线程是两个非常重要的概念,它们在操作系统中各自扮演着独特的角色。理解它们之间的区别对于编写高效、可维护的并发程序至关重要。下面将详细阐述进程和线程在C语言中的区别。 首先,我们…

机器学习每周挑战——旅游景点数据分析

数据的截图,数据的说明: # 字段 数据类型 # 城市 string # 名称 string # 星级 string # 评分 float # 价格 float # 销量 int # 省/市/区 string # 坐标 string # 简介 string # 是否免费 bool # 具体地址 string拿到数据…

【42 可视化大屏 | 某瓣电影Top250数据分析可视化大屏】

文章目录 🏳️‍🌈 1 普版大屏🏳️‍🌈2 Flask版大屏🏳️‍🌈3 FlaskMysql版大屏🏳️‍🌈 4. 可视化项目源码数据 大家好,我是 👉【Python当打之年(点击跳转)…

渐变色x轴换行柱状图

// 系统上云率const optionBar {title: {text: 系统上云率,left: left,textStyle: {color: "#fff",fontSize: 14,fontWeight: 650,align: "center",},},color: [#32C5FF, #00F766, #EECB5F],grid: {top: 40,bottom: 0,},legend: { // 控制图例组件show: …

数据结构·二叉树(2)

目录 1 堆的概念 2 堆的实现 2.1 堆的初始化和销毁 2.2 获取堆顶数据和堆的判空 2.3 堆的向上调整算法 2.4 堆的向下调整算法 2.4 堆的插入 2.5 删除堆顶数据 2.6 建堆 3 建堆的时间复杂度 3.1 向上建堆的时间复杂度 3.2向下建堆的时间复杂度 4 堆的排序 前言&…

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—解题全流程(论文更新)

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索更新(论文更新) ​ 本节主要更新了论文、训练日志的log数据提取(Loss、ACC、RK)等数据可视化作图的代码 B题交流QQ群: 4583…

《乱弹篇(26)更好的自己》

俄乌、以巴、中东,烽火连天,持久酣战,搅得地球村住民不得安宁。虽说孰是孰非自有公论,但时评文难写也是评论界的普遍认知,所以今天笔者自觉地绕开时政话题,尽本“人民体验官”义务,推广人民日报…

【BY组态】轻量化web组态编辑器插件

演示地址:http://www.byzt.nethttp://www.byzt.net BY组态是一款非常优秀的纯前端的轻量化【web组态插件工具】,大小只有2M,可无缝嵌入到vue项目,react项目等,由于是原生js开发,对于前端的集成没有框架的限…