python中异常捕获方法详解


Posted in Python onMarch 03, 2017

在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序如果发生了异常该怎么办,try-except这个功能其实很多入门书籍中都放到了高级篇幅里,在入门的时候一般不会讲这个使用,尤其是作为运维人员,如果你经常写shell,转到python后估计也很少使用这个功能,这功能我觉得说明了shell和python的一个重要区别,因为python是一门真正的编程语言,像其它的编程语言php,java等都会提供异常捕获功能,用这些程序写出的代码是要健壮性的,如果你阅读一些其他人写的程序代码,尤其是一些socket编程方面的代码,很多都是try…except…,有的还except好多个,来判断各种各样的情况,既然这个功能这么有用,我们就来尽快了解下看如何使用的吧。

第一我们先看看它的语法,语法很简单,就是在try-except中放入你想要执行的代码块,例如:、

try:
  somecode1
except 异常类型/名称:
  somecode2

这是最简单的一种情况,如果情况复杂可以使用多个except句子,例如:

try:
  somecode0
except 异常类型/名称1:
  somecode1
except 异常2:
  somecode2
except 异常3:
  somecode3

try-except还有更高级的用法,加入else,finally等,今天我们不展开说了有兴趣的可以自己深入研究下。

接下来我们来看一个简单例子,读写文件我们经常的操作,一个常见的问题就是找不到文件,或者文件名称,路径不正确,对这种情况,你就可以采用try-except代码块直观的方式来处理了:

try:
  withopen(filename, 'r+') as fp:
    data = fp.read()
exceptIOError:
  msg = 'sorry, can not read or write this ' + filename
  printmsg

我们再看一个多except的例子,2个数字相减:

loop = 1
while loop == 1:
  try:
    a = input('请输入第一个数字> ')
    b = input('请输入第二个数字 > ')
  exceptNameError:
    print "请输入数字,不能输入字母"
 continue
  exceptSyntaxError:
    print "请仅输入一个数字."
 continue
  print a - b
  try:
    loop = input('按1再开始 > ')
  except (NameError,SyntaxError):
    loop = 0

以上二个例子就是最简单的try-except的用法了,如果想要保证脚本的健壮性,后续可多用try-except代码块吧,这会让你的代码看起来更专业。

Python 相关文章推荐
新手该如何学python怎么学好python?
Oct 07 Python
python操作redis的方法
Jul 07 Python
python中字符串类型json操作的注意事项
May 02 Python
pandas中Timestamp类用法详解
Dec 11 Python
Python安装pycurl失败的解决方法
Oct 15 Python
python安装requests库的实例代码
Jun 25 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
使用python检查yaml配置文件是否符合要求
Apr 09 Python
Python 在函数上添加包装器
Jul 28 Python
提高python代码运行效率的一些建议
Sep 29 Python
python pygame入门教程
Jun 01 Python
python 判断文件或文件夹是否存在
Mar 18 Python
python利用不到一百行代码实现一个小siri
Mar 02 #Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 #Python
Python正则表达式教程之二:捕获篇
Mar 02 #Python
Python正则表达式教程之一:基础篇
Mar 02 #Python
Python单例模式实例详解
Mar 01 #Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 #Python
python 截取 取出一部分的字符串方法
Mar 01 #Python
You might like
php实现下载限制速度示例分享
2014/02/13 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
浅谈super-vuex使用体验
2018/06/25 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
python交互式图形编程实例(一)
2017/11/17 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python 如何引入协程和原理分析
2020/11/30 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
写求职信有什么意义
2014/02/17 职场文书
餐厅总厨求职信
2014/03/04 职场文书
文化建设工作方案
2014/05/12 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
护士求职自荐信
2015/03/25 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python
python神经网络Xception模型
2022/05/06 Python