try/except介绍

与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对语法进行检测,出错后发出异常消息)、数据除零错误、从未定义的变量上取值等;而try/finally语句则主要用于在无论是否发生异常情况,都需要执行一些清理工作的场合,如在通信过程中,无论通信是否发生错误,都需要在通信完成或者发生错误时关闭网络连接。尽管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的使用要非常小心,慎用。
class AError(Exception):
     """AError---exception"""
     print('AError')
try:
#raise AError
asdas('123')
except AError:
print("Get AError")
except:
print("exception")     
else:
print("else")
finally:
print("finally")     
print("hello wolrd")
在上面的代码中,Normal execution block中出现了语法错误,但是由于使用了except语句,该语法错误就被掩盖掉了。因此在使用try/except是最好还是要非常清楚的知道Normal execution block中有可能出现的异常类型以进行针对性的处理。

转自:http://www.cnblogs.com/windlazio/archive/2013/01/24/2874417.html

python基础知识三——try与except处理异常语句相关推荐

  1. [转载] python基础知识三——try与except处理异常语句

    参考链接: Python异常处理使用try,except和finally语句 try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的 ...

  2. Python基础知识三 输出字符

     在上一篇我们已经学习了python的主程序集  那么这章我们来使用PyCharm来创建py文件,并开始学习输出字符  在python中用于输出的语句是print  1.在.py文件中写入print( ...

  3. python中try语句的用法和作用_python基础知识三——try与except处理异常语句

    try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对 ...

  4. python基础知识三 字典-dict + 菜中菜

    3.7字典:dict+菜中菜 1.简介 ​ 无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联 ​ 定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu': ...

  5. Python复习系列:Python基础知识(三)

    Python基础知识(三) Python基础知识(三) (一)循环结构和选择结构 1. 条件表达式 2. 选择结构 2.1 单分支选择结构 2.2 双分支选择结构 2.3 多分支选择结构 2.4 选择 ...

  6. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  7. python基础知识资料-Python基础知识梳理 - 第02部分

    本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表. 数字类型 在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等 ...

  8. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  9. Python基础知识有哪些?你都知道吗

    Python基础知识有哪些?这几年,人工智能.数据分析等各行业的兴起,让更多人知道了Python,让Python是又火了一把.Python作为一个简介又实用的编程语言,让许多想从事信息技术行业的人准备 ...

最新文章

  1. 由浅入深之Tensorflow(3)----数据读取之TFRecords
  2. 差速移动机器人之轨迹跟踪
  3. CentOS7性能监控系统安装
  4. Dictionary泛型集合
  5. 大数据、AI“武装”企业服务:风控、检索、安全
  6. decode 类似 case when
  7. 关于editor网页编辑器ueditor.config.js 配置图片上传
  8. 真正的大学老师,是那些无需打卡和考评,也会不可遏止地要去读书写作和上课的人...
  9. 数据表的查看 mysql
  10. Win7电脑开启局域网连接和共享过程中出现的您可能没有权限使用网络资源的解决办法...
  11. VScode 把tab置换为空格
  12. Windows Sockets网络编程读书笔记(及简单C/S实现)
  13. NOI / 2.5基本算法之搜索7834:分成互质组(详细讲解)
  14. React 18 新特性-入门教程
  15. 如何通过SEO思维收割各大平台的流量?
  16. mysql中ddl是什么_mysql ddl什么意思
  17. python ocr文字识别竖排繁体_(以繁体竖排为例)OCR各种软件使用效果对照..docx...
  18. MATLAB的取整函数与取余函数
  19. python版本换行问题
  20. WPF学习笔记——没有前途的WPF

热门文章

  1. 【学习笔记】23、读写文件(I/O操作)— 写文件
  2. FBL3N增加表字段
  3. ora-12528 : message 12528 not found; product=RDBMS ; facility=ora
  4. SAP SD:SAP信贷出口
  5. SAP中添加自定义菜单
  6. SAP FI/CO模块调研问卷
  7. KSS2-成本中心作业价格分割(错误!!!)
  8. 财经法规2013江苏模拟题
  9. 拼购电商不是团购,但扎的的却是三四五线城市老百姓的心
  10. python中的字符串是什么,一文秒懂Python中的字符串