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)相关推荐

  1. python3菜鸟教程-Python3 循环语句

    Python3 循环语句 本章节将为大家介绍 Python 循环语句的使用. Python 中的循环语句有 for 和 while. Python 循环语句的控制结构图如下所示: while 循环 P ...

  2. 捷信达会员管理系统SQL语句相关

    捷信达会员管理系统SQL语句相关 USE gshis GO SET ANSI_NULLS, QUOTED_IDENTIFIER ON GO/****************************** ...

  3. Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历))

    Python3 日期时间 相关模块(time(时间) / datatime(日期时间) / calendar(日历)) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog. ...

  4. python搞笑语句_云计算开发学习笔记:Python3 import语句

    原标题:云计算开发学习笔记:Python3 import语句 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: 当解释器遇到 import 语句,如果模块在当前的 ...

  5. C++拾遗(五)语句相关

    前缀格式与后缀格式 对于表达式:后缀如 i++ 表达式的值仍是 i,在遇到下一个顺序点后再将 i 加1.前缀 ++i 表达式的值就是(i+1),先计算表达式的值,不需要等待 顺序点. 对于类:前缀函数 ...

  6. python3 循环语句 for语句和while语句

    range 函数.是python中创建范围的内置函数. 范围类似于切片.它们包含起始位置(这里为0),但不包含结束位置(这里为10).还可以指定范围,如range(1,5) >>> ...

  7. Java岗位笔试题之sql语句相关(数据库Mysql)

    前段时间闺蜜面试了一家公司,面试题其中有一个市关于sql,说实话sql能力实在是太差,百度了之后才知道怎么写???,现做如下记录总结: 有如下两个表dept(部门表)和emp(员工表),查出至少有一个 ...

  8. MySQL语句相关经验总结

    为什么80%的码农都做不了架构师?>>>    1. 字段自减 UPDATE `table_name` SET `total`=IF(`total` < 1, 0, `tota ...

  9. python3 循环语句

    Python中的循环语句有 for 和 while. Python循环语句的控制结构图如下所示: while 循环 Python中while语句的一般形式: while 判断条件:语句 同样需要注意冒 ...

最新文章

  1. 用js获取当前地理位置的经纬度
  2. quo,vadis_Quo Vadis JUnit
  3. Linux文件大小排序
  4. 专注力 化繁为简的惊人力量
  5. 如何使用 Serverless Devs 部署静态网站到函数计算(上)
  6. Objective-C 语法快速参考(附:Learning_Objective-C_A_Primer_中文版)
  7. 103_Power Pivot 透视表中空白标签处理及百分比
  8. MVC设计模式-学习笔记
  9. php数字转千分制,JS实现金额千分制的转换以及还原
  10. Python 进阶 —— itertools
  11. 如何使用3Dmax将模型和贴图一起导入新文件里而不会丢失贴图的解决方法
  12. matlab心电滤波,应用Matlab对人体的心电信号进行滤波
  13. MATLAB之LU分解法(十)
  14. STM32学习记录0010——TFTLCD液晶显示屏
  15. 13步设计出一个ITSM系统
  16. 个人阅读作业+个人总结
  17. 银行测试(1)-我国的银行类型
  18. Gson int类型被转换成double问题解决(完美解决)
  19. HIVE 列转行 字段分组截取随笔#collect_list/collect_set
  20. 这种情况,你会不会离职?

热门文章

  1. 用 C 语言开发一门编程语言 — 语法解析器
  2. SD-WAN — Overview
  3. Windows 08 R2_创建AD DS域服务(图文详解)
  4. VScode操作记录
  5. PLMN选择,RPLMN、EPLMN、UPLMN、OPLMN、VPLMN、APLMN、FPLMN的概念
  6. SecureCRT的使用
  7. python基础知识8——常见内置模块
  8. CACTI安装后不出图问题解决方法(由于时间问题引起的)
  9. Leap Motion+第六感或引发人机交互革命
  10. 完美应用 极通EWEBS 新版新秀