主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生错误,都需要在通信完成或者发生错

误时关闭网络连接。尽管try/except和try/finally的作用不同,但是在编程实践中通常可以把它们组合在一起使用

try/except/else/finally的形式来实现稳定性和灵活性更好的设计。

默认情况下,在程序段的执行过程中,如果没有提供try/except的处理,脚本文件执行过程中所产生的异常消息会自动发送给程序调用端,

如python shell,而python shell对异常消息的默认处理则是终止程序的执行并打印具体的出错信息。这也是在python shell中执行程序错误后所出现的出错打印信息的由来。try/except格式

python中try/except/else/finally语句的完整格式如下所示:

try:

Normal execution block

except A:

Exception A handle

except B:

Exception B handle

except:

Other exception handle

else:

if no exception,get here

finally:

print("finally")

说明:

正常执行的程序在try下面的Normal execution block执行块中执行,在执行过程中如果发生了异常,则中断当前在

Normal execution block中的执行,跳转到对应的异常处理块中开始执行;

python从第一个except X处开始查找,如果找到了对应的exception类型则进入其提供的exception handle中进行处理,

如果没有找到则直接进入except块处进行处理。except块是可选项,如果没有提供,该exception将会被提交给python进行默认处理,

处理方式则是终止应用程序并打印提示信息;

如果在Normal execution block执行块中执行过程中没有发生任何异常,则在执行完Normal execution block后会进入else执行块中

(如果存在的话)执行。

无论是否发生了异常,只要提供了finally语句,以上try/except/else/finally代码块执行的最后一步总是执行finally所对应的代码块。

需要注意的是:

1.在上面所示的完整语句中try/except/else/finally所出现的顺序必须是try-->except X-->except-->else-->finally,即所有

的except必须在else和finally之前,else(如果有的话)必须在finally之前,而except X必须在except之前。否则会出现语法错误。

2.对于上面所展示的try/except完整格式而言,else和finally都是可选的,而不是必须的,但是如果存在的话else必须在finally之前,

finally(如果存在的话)必须在整个语句的最后位置。

3.在上面的完整语句中,else语句的存在必须以except X或者except语句为前提,如果在没有except语句的try block中使用else语句

会引发语法错误。也就是说else不能与try/finally配合使用。

4.except的使用要非常小心,慎用。

python的try和except_python的try...except相关推荐

  1. python的try和except_Python用try except处理程序异常的三种方法总结

    Python用try except处理程序异常方法分析 本文实例讲述了Python使用try except处理程序异常的三种常用方法.分享给大家供大家参考,具体如下: 如果你在写python程序时遇到 ...

  2. python while true try except_Python为true时,Try/Except,返回valu

    当我在生成一个变量并将while设置为True.try/except命令后尝试返回值时,该变量不返回该值.我正在努力使这个"起点"全球化,以便可以使用它.在def start_ti ...

  3. python if try except_python try except

    python中try/except/else/finally语句的完整格式如下所示: try: Normal execution block except A: Exception A handle ...

  4. Github配置(git+vscode+python+jupyter)

    ①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name "Your Name" $ git config -- ...

  5. 【实验楼】python简明教程

    ①终端输入python进入 欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器. ②vim键盘快捷功能分布 ③这里需要注意如果程序中 ...

  6. 【Kaggle Learn】Python 5-8

    五. Booleans and Conditionals Using booleans for branching logic x = True print(x) print(type(x))''' ...

  7. 【Kaggle Learn】Python 1-4

    [Kaggle Learn]Python https://www.kaggle.com/learn/python 一. Hello, Python A quick introduction to Py ...

  8. 使用python愉快地做高数线代题目~

    今天接触到了python,发现真是极易上手啊!对比c语言是什么鬼东西= = 诶,等下,看完教学文章发现TA在下面写了这句话 如果做了前面的内容你可能已被吸引了,觉得c语言真的是废材! 不...不是的. ...

  9. python 位运算与等号_Python 运算符

    和大多数语言一样,Python也有很多运算符,并且运算符跟其他语言的运算符大同小异接下来一一介绍: 算术运算符: 运算符描述实例 +加 - 两个对象相加a+b的输出结果是30 -减 - 得到复数或者一 ...

最新文章

  1. java instanceof 原理_java-在现代JVM实现中如何实现instanceof?
  2. 网站优化中哪些设置会影响蜘蛛的抓取?对网站SEO产生什么影响?
  3. 机器人差速驱动方式(Differential Drive)
  4. c#-检查USB硬件变化
  5. 领域驱动第四章-读书笔记
  6. 廖雪峰说python_廖雪峰官网Python部分的疑问及解决
  7. Hive分析窗口函数系列文章
  8. 广州市科目三电子路考--大观路通过经验
  9. OpenJudge NOI 1.7 14:大小写字母互换
  10. 用simulink分析傅里叶变换、短时傅里叶变换和小波变换
  11. 20189217 2018-2019-2 《移动平台开发实践》第6周学习总结
  12. 使用/调用 函数的时候, 前面加不加 对象或 this?
  13. JavaEE 笔记一
  14. linux的IO调度算法和回写机制
  15. VASP、Lammps快速上手神器——MedeA软件
  16. Linux安装winetim简单教程,在Ubuntu 18.04中安装Wine QQ、微信、TIM,并安装图标托盘,...
  17. 夏普Sharp MX-B6581D 一体机驱动
  18. 人在烟火间(外两章)
  19. 干货!基于信息瓶颈理论的神经元竞争初始化策略
  20. VS code,Live Server更改默认浏览器

热门文章

  1. windows下安装各个版本memcache扩展
  2. IIS发生意外错误0x8ffe2740
  3. (实际开发大数据分析系统)网络爬虫获取数据与销售数据分析系统
  4. Wisdom RESTClient支持自动化测试并可以生成API文档
  5. 分模块开发创建父工程——(六)
  6. Javaweb监听器(2)
  7. Android AES加密算法,现在实际上
  8. Facebook API使用经验分享
  9. CE5.0 - romimage.exe如何填充eboot.bin中的pTOC特殊指针生成.nb0
  10. php返回null接收的是空字符串,求大神救命!!php接收到是空的字符串