python3 try语句相关 (try/except/else/finally)
1、try - except
作用: 捕获程序在执行时遇到的异常情况,即一些报错。什么啥玩意儿没定义啊,符号又错了啊之类的你懂得。
意义: 因为程序在发现某个错误时,往往会中断不再向下执行,如下例子说明问题:
很明显,我们并没有定义b, 就将它赋值给a, 现在我们运行如下:
不出所料提示NameError, 发现错误就报错,不再执行下面的程序。
现在我们用try/except写一下:
打印:
我们从这个例子可以试着去推测这段代码的执行过程:
(1)先执行try代码块, 发现了错误。
(2)执行except代码块。
(3)程序向下执行。
可能有疑问try block发现异常前后正常的的部分会被执行吗,可以测试一下:
打印:
结论:
(1)先执行try block, 直到发现了错误,不再执行异常之后的代码。
(2)执行except block.
(3)向下继续。
现在已经对try/excepy有了感性的了解,接下来拓展它的用法:
简单来说,在try/except语句中,可以用多个except.
例子:
这里使用了两个except, 可以发现except 后面跟了SyntaxError, NameError, 这个我们经常见过的两个系统报错,当然这里可以改成任何系统错误(参见python标准异常)。执行:
可见,当try代码块执行出现异常,在except中匹配到了NameError的异常,则执行了对应except的语句。
新的疑问,若所有except都没有匹配呢,测试如下:
我们将NameErro改成了SystemExit,打印:
发现又回到了开始,说明这样的try/except等于是废的。。。
所以避免没有匹配到异常,又中断程序,将代码修改如下:
即又加了一条except, 这条except后面没有加系统错误,打印:
OK,get it.
2、try-except-else
举个例子:
打印:
可见,有异常时,else block时不执行的。
那,无异常时:
打印:
可见,无异常时else block执行。
至此可以写出try/except/else的格式
try:try block
except ERROR1:except ERROR1 block
except ERRPR2:except ERROR2 block......
except:except block
else:else block
当然, 这些测试只是看到语句的功能,具体的实现内部原理再说吧, 一开始看那些得把人搞晕。
3、try-finally
作用: 无论try语句是否有异常,最后都要执行的代码。
例子:
错是有的,先执行完finally block, 然后回到try block报错。
当然 try, except, else, finally是可以全部组合在一起用的。
python3 try语句相关 (try/except/else/finally)相关推荐
- python3菜鸟教程-Python3 循环语句
Python3 循环语句 本章节将为大家介绍 Python 循环语句的使用. Python 中的循环语句有 for 和 while. Python 循环语句的控制结构图如下所示: while 循环 P ...
- 捷信达会员管理系统SQL语句相关
捷信达会员管理系统SQL语句相关 USE gshis GO SET ANSI_NULLS, QUOTED_IDENTIFIER ON GO/****************************** ...
- Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))
Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...
- python搞笑语句_云计算开发学习笔记:Python3 import语句
原标题:云计算开发学习笔记:Python3 import语句 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: 当解释器遇到 import 语句,如果模块在当前的 ...
- C++拾遗(五)语句相关
前缀格式与后缀格式 对于表达式:后缀如 i++ 表达式的值仍是 i,在遇到下一个顺序点后再将 i 加1.前缀 ++i 表达式的值就是(i+1),先计算表达式的值,不需要等待 顺序点. 对于类:前缀函数 ...
- python3 循环语句 for语句和while语句
range 函数.是python中创建范围的内置函数. 范围类似于切片.它们包含起始位置(这里为0),但不包含结束位置(这里为10).还可以指定范围,如range(1,5) >>> ...
- Java岗位笔试题之sql语句相关(数据库Mysql)
前段时间闺蜜面试了一家公司,面试题其中有一个市关于sql,说实话sql能力实在是太差,百度了之后才知道怎么写???,现做如下记录总结: 有如下两个表dept(部门表)和emp(员工表),查出至少有一个 ...
- MySQL语句相关经验总结
为什么80%的码农都做不了架构师?>>> 1. 字段自减 UPDATE `table_name` SET `total`=IF(`total` < 1, 0, `tota ...
- python3 循环语句
Python中的循环语句有 for 和 while. Python循环语句的控制结构图如下所示: while 循环 Python中while语句的一般形式: while 判断条件:语句 同样需要注意冒 ...
最新文章
- 用js获取当前地理位置的经纬度
- quo,vadis_Quo Vadis JUnit
- Linux文件大小排序
- 专注力 化繁为简的惊人力量
- 如何使用 Serverless Devs 部署静态网站到函数计算(上)
- Objective-C 语法快速参考(附:Learning_Objective-C_A_Primer_中文版)
- 103_Power Pivot 透视表中空白标签处理及百分比
- MVC设计模式-学习笔记
- php数字转千分制,JS实现金额千分制的转换以及还原
- Python 进阶 —— itertools
- 如何使用3Dmax将模型和贴图一起导入新文件里而不会丢失贴图的解决方法
- matlab心电滤波,应用Matlab对人体的心电信号进行滤波
- MATLAB之LU分解法(十)
- STM32学习记录0010——TFTLCD液晶显示屏
- 13步设计出一个ITSM系统
- 个人阅读作业+个人总结
- 银行测试(1)-我国的银行类型
- Gson int类型被转换成double问题解决(完美解决)
- HIVE 列转行 字段分组截取随笔#collect_list/collect_set
- 这种情况,你会不会离职?