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 字典(dict)遍历的四种方法性能测试报告
Jun 25 Python
Python采集腾讯新闻实例
Jul 10 Python
python批量生成本地ip地址的方法
Mar 23 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
Python如何实现动态数组
Nov 02 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
Python之字典对象的几种创建方法
Sep 30 Python
用python获取txt文件中关键字的数量
Dec 24 Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
Apr 28 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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php 中文和编码判断代码
2010/05/16 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
2020/08/03 PHP
为数据添加append,remove功能
2006/10/03 Javascript
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
python实现多进程代码示例
2018/10/31 Python
基于python使用tibco ems代码实例
2019/12/20 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
详解如何修改python中字典的键和值
2020/09/29 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
Java程序员面试题
2016/09/27 面试题
餐饮业会计岗位职责
2013/12/19 职场文书
比赛口号大全
2014/06/10 职场文书
司机岗位职责说明书
2014/07/29 职场文书
药品开票员岗位职责
2015/04/15 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang
css3新特性的应用示例分析
2022/03/16 HTML / CSS
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫