Python第十二节 异常
Python 第十三节 异常
python的错误一般包含两类:
* 语法错误 : 语法错误一般就是, 当你写完程序提交的时候, 发现无法提交, 提示存在错误.例如: 英文逗号 错写成了 中文逗号
* 异常 : 在执行阶段, 因某种原因导致程序中断, 即为异常。例如: 除数为0, 在编译阶段会通过, 但是执行阶段会报错。
一.异常和异常处理
异常在执行中断后会以信息的形式打印在终端给与提示,以调用栈的形式显示具体信息
我们写程序的过程中, 终归会有考虑不到或者出乎意料的地方, 对此, 为了保证程序遇到异常, 仍能继续执行下去, 则就要用到异常处理。
异常处理的逻辑如下:
try:
代码块1
except 异常类别1:
异常处理代码块1
except 异常类别2:
异常处理代码块2
except: 异常处理代码块3
else:
代码块2
具体过程如下:
1.执行代码块1(代码块1是正常的程序逻辑, 即我们要实现的部分)
2.如果并没有触发异常, 则执行完代码块1就结束, except部分忽略
3.否则, 从代码块1触发异常的位置起,停止后续代码块1的执行。触发的异常会去匹配后面的异常分支(触发的异常会有一个名称, 比方说除数为0的异常叫做ZeroDivisionError), 进而去执行对应的分支内的异常处理逻辑。等执行完异常逻辑处理, 再转而继续执行代码块1剩下的部分。
4.如果未找到对应的except分支, 那么异常会抛给上层的try对应的异常处理。
5.如果完全无异常, 则会继续执行else分支(else分支可选, 其目的是将try内的代码块拆分得更细)
举一个简单的例子:
def FunTest(xx, yy):
print(xx/yy)
if __name__ == '__main__':
aa = 10;
bb = 0;
try :
FunTest(aa, bb)
except Exception:
print("异常, 为程序的能够不报错, 返回值 :", 0)
else:
print('如果看到这句话, 证明为触发异常')
执行结果如下:
还有try...finally...
还有一部分用户自定义异常
Python第十二节 异常的更多相关文章
- Python中获取异常(Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...
- python学习笔记——异常
转自 http://www.cnblogs.com/rubylouvre/archive/2011/06/22/2086644.html Python内建异常体系结构 BaseException +- ...
- Python学习 之 异常
1.python中处理异常的方式 #coding:utf8 filename=raw_input("请输入你要操作的文件") try: f=open(filename) print ...
- python中的异常如何处理
一.异常基础 在编程程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面. try: #正常逻辑代码 input = raw_input("输入数字:") data ...
- python自动化测试之异常及日志
为了保持自动化测试用例的健壮性,异常的捕获及处理,日志的记录对掌握自动化测试执行情况尤为重要,这里便详细的介绍下在自动化测试中使用到的异常及日志,并介绍其详细的用法. 一.日志 打印日志是很多程序的重 ...
- python大法好——异常
---恢复内容开始--- Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Pyth ...
- 十九. Python基础(19)--异常
十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try: <............. ...
- Python错误和异常 学习笔记
错误和异常概念 错误: 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 异常:执行过程中出现万体导致程序无法执行 1.程序遇到 ...
- Python入门学习系列——Python文件和异常
从文件中读取数据 首先准备一个文本文件,文件中存储着普通文本数据.读取文件需要调用open()和read()函数. 读取整个文件 代码示例: with open('pi_digits.txt') as ...
随机推荐
- shell数学运算
shell的数学运算 branches@ubuntu:~$ var1=$[ * ] branches@ubuntu:~$ echo $var1 branches@ubuntu:~$ var2=$[$v ...
- USB hub串口绑定
方式一 1.查看串口信息 udevadm info /dev/ttyUSB0 2.创建配置文件 sudo vi /etc/udev/rules.d/com_port.rules ACTION==&qu ...
- windows下如何使用Git上传代码
首先,在使用Git的同时,我们需要拥有码云账号,在官网注册即可(官网:https://gitee.com/). 注册结束后创建一个代码仓库,最好和要上传的文件夹名字一样: 1.首先在电脑上安装wind ...
- 力扣——candy (分糖果) python实现
题目描述: 中文: 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. ...
- 力扣——3sum closest(最接近的三数之和)python 实现
题目描述: 中文: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一 ...
- Es学习第一课,了解基本功能和概念
Elasticsearch作为这几年最流行的搜索引擎,越来越多的互联网企业都在采用它:作为java开发者来说,如果想进一步提高自己能力,同时也为了能够在实际工作中遇到搜索.存储问题多一个解决方案,学习 ...
- 眼前一亮的WI微逸输入法
手机上找了好多输入法,比如百度,谷歌,手心等,百度太花哨,pass:谷歌不知为何反映慢,也pass:手心颜值低,哈哈!!偶遇WI输入法,试用了不错.故推荐之,下面为界面截图:
- Spark核心原理初探
一.运行架构概览 Spark架构是主从模型,分为两层,一层管理集群资源,另一层管理具体的作业,两层是解耦的.第一层可以使用yarn等实现. Master是管理者进程,Worker是被管理者进程,每个W ...
- 部署.net Core 到 Windows server 2008 r2 IIs
1. 将项目发布 2.iis 新建网站,设置 3 安装windows server hosting 4 关于报错 1.下载sdk https://www.microsoft.com/net/lea ...
- oralce存储过程
简单的存储 create or replace procedure sayhelloworld as begin dbms_output.put_line('Hello World'); end;