【python基础学习11课_异常机制】

news2024/12/24 8:55:57

一、异常

1、异常的定义

异常:程序无法继续执行

异常会中断程序执行

异常处理,是为了不中断程序执行。而不是避免错误。有些代码是报错就是要暴露出来


有了异常机制,错误的代码报错后抛出异常,代码从上到下,报错代码后面的正确的代码还是都要执行的
没有异常机制的话,错误的代码报错后,程序终止,不再继续执行。
当然,如果try和ecpet里面代码块,都有错误,那么程序一定会报错


语法规则:
try:
    常规的代码块(可能存在着异常问题)
ecpet:
    补救措施的代码块,也可以忽略不计,直接使用pass占位符

二、 异常的处理

1、try和except

1)try和except只能二选一执行,不会都执行。


try正确,不走except。try错误,走except。

2)对异常进行处理,或者忽略

pass表示占位符,忽略pass异常

如果try和except都报错。程序还是会报错

3) 捕获异常--except Exception as e
语法规则:
try
   ...
except Exception as e
   ...

4)try和except嵌套

2、 try和finally

语法规则:
try:
    代码块
except:
    代码块
finally:   # 无论异常是否会发生,finally的代码块一定会执行
    代码块
"""


三条路:try和except二选其一,或者都走不通,但是finally不管怎样,都会执行


1.try和except同时存在问题的时候,会同时反馈报错信息
2.try、except和finally都存在问题的时候,也会同时反馈报错信息
3.try和except同时存在问题,但是finally不存在问题,会运行finally的代码,然后会抛出另外两个异常信息
1)无论报错(异常)是否会发生,finally的代码块一定会执行

有异常,有报错

有异常,没有报错

 2)try和except只能二选一执行,不会都执行。但是finally一定会执行

 3、assert异常

断言: 提前准备好 预期结果 和 实际结果 进行比较,获取这个对比的结果,

只有2种结果:True False

assert 是一个关键字

语法规则:

assert 预期结果 比对符号 实际结果, "报错的返回信息"

正常的结果 -- 比如: print("用例测试通过")


自动化的用例,通过的标准:当你的用例的代码全部成功执行结束,pass,只要被中断/报错,就为fail
1)assert 预期 =实际

 2)assert 预期 /=实际,报错

但是只给报了一个AssertionError,没有具体的报错信息

 3) assert 预期 /=实际,自定义异常

通过变量获取报错详情,报的错误信息需要自己去设计(要用英文,不要写中文,显得low)

AssertionError: 自己设计的报错信息。

 4、with...as...

语法规则:

with 代码 as 变量

用于文件读取,with代码块执行结束之后,会自动关闭文件


as主要是把很长的文件、代码,精简成一个变量,方便操作和简洁
1)普通文件只能手动关闭,不能自动关闭

2) with执行完内部代码块,会自动关闭文件

with里面的代码可以执行,但是with执行完就会自动关闭文件,外面就不能读取了

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

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

相关文章

触发HTTP preflight预检及跨域的处理方法

最近在做需求的过程中,遇到了很多跨域和HTTP预检的问题。下面对我所遇到过的HTTP preflight和跨域的相关问题进行总结: 哪些情况会触发HTTP preflight preflight属于cors规范的一部分,在有跨域的时候,在一定情况下会触发preflig…

字节开启新一轮期权回购,价格又涨了(含算法原题)

字节期权 近日,字节跳动开启新一轮期权回购,价格微涨至 170 美元。 之前我们就写过 文章,分享历年来字节跳动的期权变化情况,这里再贴一下: 18年:10 19年:30 20年:60-70 21年&#x…

Linux系统编程(六)高级IO

目录 1. 阻塞和非阻塞 IO 2. IO 多路转接(select、poll、epoll) 3. 存储映射 IO(mmap) 4. 文件锁(fcntl、lockf、flock) 5. 管道实例 - 池类算法 1. 阻塞和非阻塞 IO 阻塞 IO:会等待操作的…

决定马里兰州地区版图的关键历史事件

1. 马里兰殖民地的建立: - 1632年,英国国王查理一世将一大片土地赐予塞西尔卡尔弗特男爵,这片土地是为了纪念国王的妻子亨丽埃塔玛丽亚而命名为“马里兰”。卡尔弗特和他的儿子随后建立了马里兰殖民地,这标志着马里兰作为一个独立…

车辆伤害VR安全教育培训复用性强

VR工地伤害虚拟体验是一种新兴的培训方式,它利用虚拟现实技术为参与者提供身临其境的体验。与传统的培训方式相比,VR工地伤害虚拟体验具有许多优势。 首先,VR工地伤害虚拟体验能够模拟真实的工作环境和事故场景,让参与者在安全的环…

hdu-2059(dp)

hdu-2059 龟兔赛跑 dp[i] 表示到第i个站所花费的最少时间,t[j][k]表示在第j个站充满电,直接开到第k个站所花的时间,那么状态转移为: dp[i] min(dp[i], dp[j] t[j][i]) 含义为,假设我们当前想知道到达第i个站的最少时间&#xff…

虽说主业搞前端,看到如此漂亮的网页UI,也是挪不开眼呀。

漂亮的网页UI能够吸引人的眼球,给人留下深刻的印象。作为前端开发人员,可以通过不断学习和掌握设计技巧和工具,提升自己的UI设计能力,为用户提供更好的视觉体验。 以下是一些提升网页UI设计能力的建议: 学习设计基础知…

苹果发布iOS17.4正式版升级,罕见带来一大波新功能!苹果数据备份软件 iOS系统管理软件 苹果数据备份到icloud iOS系统数据处理

近日,苹果发布了iOS17.4正式版,没想到的是居然有一大波新功能,如果你也是用iPhone的话,尤其是iPhone15新系列的,那么推荐你一定要升级下。下面让我给大家详细讲讲: 「电池健康」升级 电池设置界面得到了优…

图书馆管理系统(2)

接下来实现系统的子菜单,在写一个子模块的时候,其他子模块先屏蔽起来,因为没实现,代码运行就通不过 屏蔽起来写上todo,后面(Ctrl键F)搜索,找todo来实现 先来实现图书管理模块 第一步,先要把图…

【STM32】HAL库 CubeMX教程---基本定时器 定时

目录 一、基本定时器的作用 二、常用型号的TIM时钟频率 三、CubeMX配置 四、编写执行代码 实验目标: 通过CUbeMXHAL,配置TIM6,1s中断一次,闪烁LED。 一、基本定时器的作用 基本定时器,主要用于实现定时和计数功能…

Vue3_2024_6天【回顾上篇watch常见的前三种场景】另两种待补

第一种情况:监视【ref】定义(基本数据类型) 1.引入watch2.格式:watch(基本数据类型数据,监视变化的回调函数) 注意点: 2.1.watch里面第一个参数,是数据~~【监视的基本类…

IPSec VPN配置实验

什么是IPSec VPN? IPSec VPN其实就是一种基于互联网协议安全(IPSec)的虚拟私人网络技术,它通过在IP层加密和认证数据包来确保数据传输的安全性。 IPSec VPN的主要特点包括: 安全性:IPSec提供了强大的安全…

14:00面试,15:00就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到2月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

【异常处理】Vue报错 Component template should contain exactly one root element.

问题描述 启动VUE项目后控制台报错: Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.翻译为:组件模板应该只包含一个根元素 查看vue代码&#xff0…

IJCAI23 - Continual Learning Tutorial

前言 如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。 本篇 Tutorial 主要介绍了 CL 中的一些基本概念以及一些过往的方法。 Problem Definition Continual Learning 和 Increm…

分享几种简约大方的ListView外观设计(qml)

一、前言 最近才学到这里,感觉基础的 ListView 很丑,就现学现用弄个几个自认为还行的设计给大家献丑了。如果你觉得还不错,代码就在下面拿去直接用,顺便给我点个赞哈 ~ 感谢感谢 ~ 二、正文 设计1 第一种就是正常的左侧边栏&am…

代码随想录训练营第39天 | LeetCode 62.不同路径、​​​​​​LeetCode 63. 不同路径 II

LeetCode 62.不同路径 文章讲解:代码随想录(programmercarl.com) 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili 思路 代码如下: ​​​​​​LeetCode 63. 不同路径 II 文章讲解…

Linux服务器安装nvm

1、 首先查看服务器有没有安装git git --version 2、如果没有安装:在Linux上是有yum安装Git,非常简单,只需要一行命令 yum -y install git 3、git安装完成后,使用以下其中一个命安装NVM # 能访问github的话,使用这…

CubeMX使用教程(3)——GPIO

在第二章我们完成了点灯仪式,这次我准备尝试把按键和灯结合起来,做一次GPIO的综合测试 实验任务为:按下按键1(B1),第1个灯(LD1)亮; 按下按键2(B2)…

使用Matlab计算IGRAv2探空站的Tm和PWV

1. 探空站IGRAv2数据 探空站的Tm常作为真值,去检验Tm线性公式或者ERA5 Tm等的精度 。 探空站PWV常作为真值,去检验GNSS PWV等的精度 2. Tm 的计算方法 Tm 的计算方法有两种在前面的文章有讲,这里用 使用水汽压和温度计算Tm。 ei和 Ti 表示…