用答卷实例通俗理解和深刻记忆:python异常处理五大机制
off999 2024-11-19 08:35 20 浏览 0 评论
什么是python的异常处理
python的异常处理,简而言之就是当程序发生错误时,能够通过程序对错误进行捕捉,并处理,从而不会导致程序全盘崩溃!要怎么更好地理解呢?
python异常处理,就好像考试答题
通常情况下,考试的卷子上从头到尾不可能只有一道题(就像python的项目不可能只有一个功能),然后,题目有容易的有难的,甚至是有错的(就像程序可能是简单的也可能是复杂的),再加上参加考试的人的知识储备不同(用户的操作习惯不同),都可能导致有些题目答错了,或不会答(程序因为种种原因发生异常),这种情况下,我们不可能就卡在那道不会答的题目那里,然后直接放弃掉后面的那些题目,绝大多数的人会跳过这道题,然后继续答下去。python的异常捕捉处理程序也是如此,就是让程序暂时跳过发生异常的地方,然后继续执行下去,而不至于全盘崩溃。
python异常处理的基本机构
try:
pass
except Exception as err:
pass
异常处理的机制
- 如上异常处理的基本机构,python的程序由上往下执行,到了try这里,先执行try里面的代码块,如果没有发生异常,则跳过except里面的代码块,继续执行其他的;
- 如果在try里面的代码块当中发生了异常,那么在异常发生的下面的代码停止执行,并执行except里面的代码块,之后再继续往下执行其他的程序;
- 异常捕捉需要匹配正确的异常类型(Exception),否则异常无法正确捕捉,这时,异常捕捉的任务会传达到上一级的try...except代码块去处理,以此类推,直到无法捕捉而抛出异常,程序继而终止;
- 多个异常捕捉排列在一起时,程序也是自上而下执行,当异常一旦被捕捉,其他的except将不会继续执行;
- Exception是通用的异常类型,可以捕捉任何一种异常,尤其方便之处,不过也尤其弊端,比如无法正确记录错误日志等。
python异常捕捉的最基本的机制实例
def examination():
print('参加考试了!')
try:
print('这道题很容易,一下子就做完了!')
print('这道题很难!')
a = int('a12')
print('跟这道题杠上了!')
except ValueError as err:
print('还是先跳过这道题吧,先把容易的有把握的分先拿下!')
print('果然,下面的题很简单,考试不仅考大家的知识,还考大家的应对能力!')
examination()
————————————————————————
代码输出:
参加考试了!
这道题很容易,一下子就做完了!
这道题很难!
还是先跳过这道题吧,先把容易的有把握的分先拿下!
果然,下面的题很简单,考试不仅考大家的知识,还考大家的应对能力!
代码解析
- 如上代码,try里面的代码a = int('a12')中,int()函数转换非数值型数据会发生异常,因为使用了异常处理的结构,所以,当代码执行到这里时,异常被except ValueEroor捕捉,然后执行except里面的代码,之后再执行程序中其他的代码;
- ValueError是专门用来捕捉值异常的,如果使用了其他的异常类型将无法正确捕捉(除了Exception通用异常),那会怎么样呢?
异常处理还有顺序机制、嵌套传递机制等等丰富实例,可查阅下面的内容:
相关推荐
- 真的没想到这个python装饰器还能这么写,见也没见过!
-
引言众所周知,python中,装饰器是非常好玩的,你能够在很多场景中看到它。有很多人可能经常会使用他人设计的装饰器,自己却很少设计过几个装饰器。当然也不乏有的大神非常善于设计装饰器。但不管如何,装饰...
- Python 开发必知的 30 款工具(python语言的开发工具)
-
全面解析开发者在Python开发各个阶段可使用的核心工具热门开源工具Python开发涉及多个阶段,因此需要多种工具来管理:依赖管理:pip、Conda和Poetry是常见的选择。性能分析:...
- 快到飞起的Python包管理工具UV:从环境创建到PyPI发布的终极指南
-
尊敬的诸位!我是一名专注于嵌入式开发的物联网工程师。关注我,持续分享最新物联网与AI资讯和开发实战。期望与您携手探寻物联网与AI的无尽可能。"又在等pip安装包?配置国内镜像源也解决不了的...
- Python输出语句print()(python输出语句print(3+5))
-
Python中的输出语句主要通过内置函数print()实现,它可以灵活输出文本、变量、表达式结果等内容到控制台或其他文件。以下是详细介绍及示例:一、print()基本语法print(*object...
- Python range 函数实用指南(python range函数的用法)
-
对话实录小白:(抓狂)我写了foriinrange(5):,为什么只到4?专家:(推眼镜)range是左闭右开区间!记住:包含起点,不包含终点!基础用法三连击1.标准用法#生成0-4p...
- 3个实用的Pycharm小技巧(pycharm新手教程)
-
前言当我们用Pycharm来编写python代码的时候,你是否留意过以下三个技巧,接下来分享给大家。1.技巧一:Pycharm添加addsourcefolder操作1.1需求:我有一个项目,是...
- python从入门到脱坑 输入与输出——print()函数
-
大家好今天开始系统的讲解一些入门课程,遇到不会的也不用想太多,跟着写一遍,学习到新内容是你就会明白.以下是针对Python初学者的print()函数详解,从基础到实用技巧,配合清晰示例:一、最基础用法...
- Python进阶-day11:并发编程基础(python处理高并发)
-
一、学习目标理解线程和进程的区别及其应用场景。掌握Python中threading模块的基本用法。能够编写一个多线程下载器,应用并发编程知识。二、学习内容与时间安排上午(2小时):理论学习1....
- Excel合并100个表格要1小时?Python3秒搞定!附代码
-
###**Python3秒合并100个Excel表格(附完整代码)****别再手动复制粘贴了!用Python一键批量合并,效率提升1200倍!**---####**适用场景**-每月汇...
- GIL锁也拦不住!这个多进程方案让python速度提升400%
-
引言"你的python程序怎么卡死了?"当产品经理第3次拍我桌子时,我终于意识到——在200万行的数据清洗任务面前,GIL锁正在把我的8核CPU变成单核计算器...提前准备为了查看核心...
- Python之进度条模块tqdm使用方法(python制作进度条可运行的代码)
-
tqdm是一个进度条模块,可以很好的描述一个任务的执行过程,并且使用起来也非常方便首先介绍tqdm常用参数:desc-进度条标题total-迭代总次数ncols-进度条总长度ascii-使用A...
- Python 中制作神奇的动态进度条(python编写进度条)
-
在本教程中,我们将学习使用三个用于在Python中创建进度条的流行库:TQDM、alive-progress、progressbar。进度条可以在视觉上为用户提供有关任务进度的反馈,如文件下载、数...
- 用Python编制模拟简单的进度条(python2 进度条)
-
模拟实现进度条很多人经常在各种视频软件里面看到进度条对比,尤其是我们很多技术、数据走在世界的前列,通过这种展示出来,很是振奋、很激动、很有成就感。很多工具都能实现的,我们今天用python模拟看看。...
- 一日一技:python中的string.encode()方法
-
string.encode()方法string.encode()方法返回给定字符串的编码形式,从Python3.0开始,字符串以Unicode格式存储,即字符串中的每个字符都由一个代码点表示。因此...
- python中字符串的操作(python字符串的基本处理)
-
字符串:英文str。表现形式有4种:‘xs’、“xs”、“”“xsxs”“”、‘’‘‘xxx’’’,三引号有个特殊功能,表示注释,跟#一样的功能,(如果字符串本身就有单则不可用单定义...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 真的没想到这个python装饰器还能这么写,见也没见过!
- Python 开发必知的 30 款工具(python语言的开发工具)
- 快到飞起的Python包管理工具UV:从环境创建到PyPI发布的终极指南
- Python输出语句print()(python输出语句print(3+5))
- Python range 函数实用指南(python range函数的用法)
- 3个实用的Pycharm小技巧(pycharm新手教程)
- python从入门到脱坑 输入与输出——print()函数
- Python进阶-day11:并发编程基础(python处理高并发)
- Excel合并100个表格要1小时?Python3秒搞定!附代码
- GIL锁也拦不住!这个多进程方案让python速度提升400%
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python自定义函数 (53)
- python进度条 (67)
- python的for循环 (56)
- python串口编程 (60)
- python写入txt (51)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)