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第十二节 异常的更多相关文章

  1. Python中获取异常(Exception)信息

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...

  2. python学习笔记——异常

    转自 http://www.cnblogs.com/rubylouvre/archive/2011/06/22/2086644.html Python内建异常体系结构 BaseException +- ...

  3. Python学习 之 异常

    1.python中处理异常的方式 #coding:utf8 filename=raw_input("请输入你要操作的文件") try: f=open(filename) print ...

  4. python中的异常如何处理

    一.异常基础 在编程程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面. try: #正常逻辑代码 input = raw_input("输入数字:") data ...

  5. python自动化测试之异常及日志

    为了保持自动化测试用例的健壮性,异常的捕获及处理,日志的记录对掌握自动化测试执行情况尤为重要,这里便详细的介绍下在自动化测试中使用到的异常及日志,并介绍其详细的用法. 一.日志 打印日志是很多程序的重 ...

  6. python大法好——异常

    ---恢复内容开始--- Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Pyth ...

  7. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try:     <............. ...

  8. Python错误和异常 学习笔记

    错误和异常概念 错误:     1.语法错误:代码不符合解释器或者编译器语法     2.逻辑错误:不完整或者不合法输入或者计算出现问题 异常:执行过程中出现万体导致程序无法执行     1.程序遇到 ...

  9. Python入门学习系列——Python文件和异常

    从文件中读取数据 首先准备一个文本文件,文件中存储着普通文本数据.读取文件需要调用open()和read()函数. 读取整个文件 代码示例: with open('pi_digits.txt') as ...

随机推荐

  1. go 学习之字符串

    字符串 字符串是不可变值类型,内部⽤用指针指向 UTF-8 字节数组.默认值是空字符串 "".用索引号访问某字节,如 s[i], i不能是负数.不能⽤用序号获取字节元素指针,&am ...

  2. Codeforces 492D Vanya and Computer Game

    D. Vanya and Computer Game time limit per test 2 seconds memory limit per test 256 megabytes input s ...

  3. elasticsearch 嵌套对象之嵌套类型

    nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询. 1. 对象数组如 ...

  4. 力扣 —— Two Sum ( 两数之和) python实现

    题目描述: 中文: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利 ...

  5. docker-ce 搭建的 lamp 开发环境笔记

    工作目录: /home/{username}/dockers/lamp 将docker容器的apache的80 映射为本地主机的81 # sudo docker pull mattrayner/lam ...

  6. python 控制终端执行的subprocess.getoutput函数

    devices = subprocess.getoutput('ios-deploy -c') print(devices) 如上代码中,subprocess.getoutput函数首先在终端执行命令 ...

  7. 【网络】Vmware虚拟机下三种网络模式配置

    VMware虚拟机有三种网络模式,分别是Bridged(桥接模式).NAT(网络地址转换模式).Host-only(主机模式). VMware workstation安装好之后会多出两个网络连接,分别 ...

  8. STM32的结构和启动模式

    一.STM32F10x功能模块 32位的Cortex-M3微处理器: 可嵌套的向量中断控制器(NVIC)和60个可屏蔽中断且有16个可编程优先级: 内嵌内存: FLASH:最大512K字节 STAM: ...

  9. layer icon对应图标

    layer icon对应图标 信息框(msg.alert.open.confirm) icon:0 icon:1 icon:2 icon:3 icon:4 icon:5 icon:6 icon:16 ...

  10. CDQ分治&整体二分学习个人小结

    目录 小结 CDQ分治 二维LIS 第一道裸题 bzoj1176 Mokia bzoj3262 陌上花开 bzoj 1790 矩形藏宝地 hdu5126四维偏序 P3157 [CQOI2011]动态逆 ...