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连接mysql数据库的正确姿势
Feb 03 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
使用python编写监听端
Apr 12 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
Python实现微信翻译机器人的方法
Aug 13 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
python 爬取天气网卫星图片
Jun 07 Python
教你用python实现12306余票查询
Jun 30 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
yii添删改查实例
2015/11/16 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Flask之flask-session的具体使用
2018/07/26 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
区域销售经理岗位职责
2013/12/10 职场文书
《日月潭》教学反思
2014/02/28 职场文书
设计专业自荐信
2014/06/19 职场文书
大学生作弊检讨书
2014/09/11 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
停电通知范文
2015/04/16 职场文书
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL