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比较2个时间大小的实现方法
Apr 10 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
如何用Python制作微信好友个性签名词云图
Jun 28 Python
Django的性能优化实现解析
Jul 30 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
在CentOS7下安装Python3教程解析
Jul 09 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/10/11 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
js控制框架刷新
2008/08/01 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
python开发之for循环操作实例详解
2015/11/12 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
在Python中实现字典反转案例
2020/12/05 Python
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
2014年收银工作总结
2014/11/13 职场文书
2015年校长新年寄语
2014/12/08 职场文书
农村结婚典礼主持词
2015/06/29 职场文书
工作一年自我鉴定
2019/06/20 职场文书
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL