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编程中装饰器的使用示例解析
Jun 20 Python
django 发送手机验证码的示例代码
Apr 25 Python
PyQt5 pyqt多线程操作入门
May 05 Python
Python Logging 日志记录入门学习
Jun 02 Python
CentOS下Python3的安装及创建虚拟环境的方法
Nov 28 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
Python流程控制 while循环实现解析
Sep 02 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
python进程间通信Queue工作过程详解
Nov 01 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 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和ACCESS写聊天室(八)
2006/10/09 PHP
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
stripos函数知识点实例分享
2019/02/11 PHP
YII框架关联查询操作示例
2019/04/29 PHP
js中this的用法实例分析
2015/01/10 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
多种方式实现js图片预览
2016/12/12 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
python生成密码字典的方法
2018/07/06 Python
Django实现表单验证
2018/09/08 Python
Python异常的检测和处理方法
2018/10/26 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
pandas实现导出数据的四种方式
2020/12/13 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
二年级体育教学反思
2014/01/15 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL