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发送Email方法实例
Aug 21 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
在python中使用nohup命令说明
Apr 16 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
python 利用opencv实现图像网络传输
Nov 12 Python
python安装及变量名介绍详解
Dec 12 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
最常用的8款PHP调试工具
2014/07/06 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
基于slideout.js实现移动端侧边栏滑动特效
2016/11/28 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
Python命令启动Web服务器实例详解
2017/02/23 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
浙江文明网签名寄语
2014/01/18 职场文书
教学实习自我评价
2014/01/28 职场文书
金融专业求职信
2014/08/05 职场文书
党支部四风整改方案
2014/10/25 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
sql中mod()函数取余数的用法
2021/05/29 SQL Server
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android