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去除所有html标签的方法
May 05 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
CentOS7安装Python3的教程详解
Apr 10 Python
Python定时任务工具之APScheduler使用方式
Jul 24 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
有关pycharm登录github时有的时候会报错connection reset的问题
Sep 15 Python
python实现自动化群控的步骤
Apr 11 Python
Python获取江苏疫情实时数据及爬虫分析
Aug 02 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
杏林同学录(五)
2006/10/09 PHP
树型结构列出指定目录里所有文件的PHP类
2006/10/09 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
JS中的变量作用域(console版)
2020/07/18 Javascript
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python 接收处理外带的参数方法
2018/12/03 Python
python3安装speech语音模块的方法
2018/12/24 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
企业统计员岗位职责
2013/12/13 职场文书
车辆安全检查制度
2014/01/12 职场文书
小学教师办公室制度
2014/02/03 职场文书
欢迎领导标语
2014/06/27 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python