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 相关文章推荐
5个很好的Python面试题问题答案及分析
Jan 19 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
Python变量访问权限控制详解
Jun 29 Python
Django的models中on_delete参数详解
Jul 16 Python
python求绝对值的三种方法小结
Dec 04 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python Socketserver实现FTP文件上传下载代码实例
Mar 27 Python
Python requests模块session代码实例
Apr 14 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
python利用platform模块获取系统信息
Oct 09 Python
Python批量删除mysql中千万级大量数据的脚本分享
Dec 03 Python
pandas DataFrame.shift()函数的具体使用
May 24 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 self,$this,const,static,->的使用
2009/10/22 PHP
Yii2框架自定义验证规则操作示例
2019/02/08 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python使用numpy实现BP神经网络
2018/03/10 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
python音频处理的示例详解
2020/12/23 Python
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
小学生安全责任书
2014/07/25 职场文书
聘任证明怎么写
2015/03/02 职场文书
求职信范文怎么写
2015/03/19 职场文书
行政前台岗位职责
2015/04/16 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书