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

news2024/9/20 12:41:54

目录

(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.coloradmin.cn/o/729785.html

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

相关文章

自动化测试 selenium 篇

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 什么是自动化测试?Selenium 介绍Selenium 是什么Selenium 特点工作原理 seleniumJava环境搭建ChromeJava1.下载ch…

uni-app:删除默认title

去除前: 可以看到有两个title 去除后: 可以看出就只有手机顶部的title了 "navigationStyle": "custom",//删除默认title

堆的向上与向下调整

目录 一、堆 1、概念 2、性质 二、向上调整 三、向下调整 四、建堆的比较 1.向上调整建堆 2.向下调整建堆 3.比较 五、总结 一、堆 1、概念 如果有一个关键码的集合K {k0k1,k2,…kn-1},把它的所有元素按完全二叉树的顺序存储方式存…

怎么学习PHP错误处理和调试? - 易智编译EaseEditing

学习PHP错误处理和调试技术可以通过以下步骤: 理解错误类型: 了解PHP中常见的错误类型,如语法错误、运行时错误和逻辑错误等。学习它们的特点和常见原因,以便更好地定位和解决问题。 错误报告设置: 在开发环境中&am…

【Java基础学习打卡14】Java注释

目录 前言一、什么是注释二、注释的重要性三、单行、多行注释1.单行注释2.多行注释 四、文档注释1.文档注释2.JDK官网文档3.javadoc生成文档 五、注释建议总结 前言 本文介绍Java注释,它是我们在Java编程中必不可少的。Java注释有单行注释、多行注释和文档注释。对…

BUUCTF Web CyberPunk WriteUp

想直接查看payload的点这里 前言 二次注入(Second-Order Injection)是指攻击者在应用程序中注入恶意数据,然后在稍后的操作或不同的上下文中再次使用该恶意数据,导致安全漏洞。它通常发生在数据库查询、数据导出、报告生成等过程…

基于springboot博客论坛系统设计与实现(源码+文档LW+数据库+报告)

HBLOG 是一个博客论坛网站,分为游客端和管理员端。游客端主要有注册登录,查看文章,发表撰写文章,管理自己的文章,评论文章等功能;而管理员端主要有登录,查看近期数据,查看日志&#…

如何做好迭代回顾 2/4

事故根因分析:上集 北京某软件开发公司,专门为电信供应商做定制软件开发,比如发短信做些推广活动等。公司希望做过程改进,我首次与公司老板访谈: 我:过程改进主要帮助管理层更好达到公司业务目标。你们自己…

365天深度学习训练营-第T5周:运动鞋品牌识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 我的环境: 语言环境:Python3.10.7编译器:VScode深度学习环境:TensorFlow2 一、前期工作: 1、导入…

【活动】如何在工作中管理情绪

写在前面 近期发生的新闻热点再度引发公众对稳定情绪和心理健康的关注。有时候我们遇到的最大的敌人,不是运气也不是能力,而是失控的情绪和口无遮拦的自己。如何在工作中保持稳定的情绪?谈谈我的看法。 愤怒的危害 说到愤怒这种情绪&#xf…

基于深度学习的高精度鸟类目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度鸟类目标(鹦鹉(Crested Myna)、麻雀(Eurasian Tree Sparrow)、黑头文鸟(Chestnut Munia)、白领翡翠(Collared Kingfisher)、太阳鸟…

【C语言】进阶指针(二)—>函数指针与回调函数

目录 前言: 一、函数指针 代码1分析: 代码2分析: 二、函数指针数组 三、指向函数指针数组的指针 四、回调函数(模拟实现库函数qsort) (一)void*类型指针的作用 (二&#xf…

Spark—Shell命令对WordCount案例的基本操作(统计、去重、排序、求平均值及join)

一、统计、去重 1、案例数据介绍 WordCount统计:某电商网站记录了大量的用户对商品的收藏数据,并将数据存储在名为buyer_favorite的文本文件中。文本数据格式如下: 2、启动spark-shell 配置好spark环境,若还没有环境可以参考…

windows下环境问题总结

nacos 启动后在spring 项目中无法加载yml配置文件 spring.datasource.platform mysql 注意一定要放开这行,不放的话,可能会导致服务可以成功注册,但是,我们无法使用局部的 nacos里yml配置文件的属性

Linux:项目自动化构建工具——make/Makefile

文章目录 一.make与Makefile的关系1.Makefile2.make 二.项目清理1.clean2. .PHONY 前言: 本章主要内容有认识与学习Linux环境下如何使用项目自动化构建工具——make/makefile。 一.make与Makefile的关系 当我们编写一个较大的软件项目时,通常需要将多个…

js实现图片压缩

创建一个type"file"的input标签&#xff0c;用于文件上传。 <input type"file" name"" id"upload" value"" />通过js实现图片压缩 window.onload function () {const upload document.getElementById("upload…

9.10UEC++生成、销毁actor

BeginPlay&#xff1a; 1.SpawnActor&#xff1a;<模板类>&#xff08;模板::staticclass&#xff08;&#xff09;&#xff0c;FVector const class&#xff0c;FRotation const class&#xff09; 生成一个actor 2.Destory&#xff08;&#xff09;从世界中销毁一个a…

SSM学习笔记-------Spring(一)

SSM学习笔记-------Spring&#xff08;一&#xff09; Spring_day011、课程介绍1.1 为什么要学?1.2 学什么?1.3 怎么学? 2、Spring相关概念2.1 初识Spring2.1.1 Spring家族2.1.2 了解Spring发展史 2.2 Spring系统架构2.2.1 系统架构图2.2.2 课程学习路线 2.3 Spring核心概念…

【zabbix 代理服务器】

目录 一、部署 zabbix 代理服务器1、设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy2、初始化数据库1、创建数据库并指定字符集2、创建 zabbix 数据库用户并授权 3、导入数据库信息4、修改 zabbix-proxy 配置文件5、启动 zabbix-proxy6、在所有主机上配置 hosts 解析7、在…

Maven高级(四)--私服

一.作用 我们所拆分的模块是可以在同一个公司各个项目组之间的项目组之间进行资源共享的&#xff0c;这就需要Maven的私服来实现。 二.场景 两个项目组之间如何基于私服进行资源的共享的呢&#xff1f; 例如A开发了一个模块tlias-utils,B团队进行项目开发&#xff0c;要想使用…