Python学习笔记(十六)————异常相关

目录

(1)异常概念

(2)异常的捕获

①异常捕获的原因

②捕获常规异常

 ③捕获指定异常

 ④捕获多个异常

⑤ 捕获异常并输出描述信息

 ⑥捕获所有异常

 ⑦异常else

 ⑧异常的finally

 (3)异常的传递


(1)异常概念

当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的异常, 也就是我们常说的BUG

(2)异常的捕获

①异常捕获的原因

当我们的程序遇到了BUG, 那么接下来有两种情况:

       ① 整个程序因为一个BUG停止运行

       ② 对BUG进行提醒, 整个程序继续运行

在真实工作中, 我们肯定不能因为一个小的BUG就让整个程序全部奔溃, 也就是我们希望的是达到② 的这种情况

那这里我们就需要使用到捕获异常

捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。

捕获常规异常

基本语法:

例如需求:尝试以`r`模式打开文件,如果文件不存在,则以`w`方式打开。

 ③捕获指定异常

基本语法:

 注意:

① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。

② 一般try下方只放一行尝试执行的代码。

 ④捕获多个异常

当捕获多个异常时,可以把要捕获的异常类型的名字,放到except 后,并使用元组的方式进行书写。

 执行结果:

⑤ 捕获异常并输出描述信息

基本语法:

执行结果:

 ⑥捕获所有异常

基本语法:

执行结果:

 ⑦异常else

else表示的是如果没有异常要执行的代码。

执行结果:

 ⑧异常的finally

finally表示的是无论是否异常都要执行的代码,例如关闭文件。

 (3)异常的传递

异常是具有传递性的

函数func01中发生异常, 并且没有捕获处理这个异常的时候, 异常

会传递到函数func02,func02也没有捕获处理这个异常的时候

main函数会捕获这个异常,  这就是异常的传递性.

提示:  当所有函数都没有捕获异常的时候, 程序就会报错

 ​

利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候,

就可以在main函数中设置异常捕获, 由于无论在整个程序哪里发生异常, 最终都

会传递到main函数, 这样就可以确保所有的异常都会被捕获

 

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

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

相关文章

Idea社区版创建SpringBoot

一 下载Spring Initalizr and Assistant插件 选择左上角的File->Settings->Plugins,在搜索框中输入Spring,出现的第一个Spring Boot Helper插件,点击Installed,下载插件。(这里已经下载) 二 创建Spr…

【MySQL练习及单表查询】

一、MySQL练习 一.创建表: 创建员工表employee,字段如下: id(员工编号) name(员工名字) gender(员工性别) salary(员工薪资) 二.插入数据 1&…

【Windows】Redis单机部署

下载redis 下载地址:Releases microsoftarchive/redis GitHub 1、下载后解压,在文件根目录下创建两个文件夹dbcache、logs 修改配置文件redis.windows.conf (1)配置redis地址: bind 127.0.0.1 (2&am…

Redis常见数据结构

文章目录 前言一、Redis通用命令二、String类型三、Key的层级结构四、Hash类型五、List类型六、Set类型七、SortedSet类型 前言 Redis是一个key-value的数据库,key一般是String类型,但是value的类型多种多样 在学习Redis不同数据类型时,我们…

AIGC - Stable Diffusion 图像控制插件 ControlNet (OpenPose) 配置与使用

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131591887 论文:Adding Conditional Control to Text-to-Image Diffusion Models ControlNet 是神经网络结构,用于控制预…

Vision Pro销售策略曝光,面罩/头带/屈光镜片加大零售难度

彭博社Mark Gurman再次发布了关于苹果Vision Pro的销售策略,以及零售方面的难题。 一、销售计划和策略 1,2024年初先在美国部分门店销售,仅线下购买,线上暂不开放。购买方式是先线上预约(可能要提供面部扫描图、眼镜…

JMeter进行websocket测试

在做websocket性能测试的时候找了几个测试工具都暂时没有对websocket的支持,发现jmeter好像对websockect支持。但是使用jmeter时需要安装插件,下面一起看一下。 jmeter下载安装: 官网下载 https://jmeter.apache.org/download_jmeter.cgi 也…

spring-spring整合Junit

1.导包 <artifactId>spring-test</artifactId> <artifactId>junit</artifactId> 2.创建测试类

Server - 通过 AutoSSH 建立服务器端口转发用于访问网页

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/131536508 AutoSSH 是一款用于创建和维护持久的SSH隧道的工具&#xff0c;可以自动检测和恢复断开的连接&#xff0c;从而保证隧道的稳定性。Auto…

20.光敏传感器

1.光敏传感器介绍&#xff1a; 光敏二极管(光敏电阻),作为光敏传感器&#xff1b;光敏二极管也称光电二极管&#xff1b;光敏二极管与半导体二极管在结构上类似&#xff0c;其管芯是一个具有光敏特征的PN结&#xff0c;具有单向导电性&#xff0c;因此工作时需要加上反向电压。…

Linux性能优化实践——如何学习Linux性能优化

性能指标 学习性能优化的第一步便是了解“性能指标”这个概念。 “高并发”和“响应快”对应着性能优化的两个核心指标——“吞吐”和“延时”。这两个指标是从应用负载的角度来考察性能的&#xff0c;直接影响了产品终端的用户体验。跟他们对应的&#xff0c;是从系统资源的视…

前后端实现mqtt物联网消息互通对话(图文详解)

需求&#xff1a;前端使用mqtt订阅主题和硬件设备进行通讯功能&#xff0c;不走后端&#xff0c;前端操作可以控制。从部署到对话&#xff0c;跟着图文一套下来你也可以学会。很简单的。后端用node&#xff0c;前端就用原生的js&#xff0c;如果要使用vue&#xff0c;可以看我另…