Python异常处理操作实例详解


Posted in Python onMay 10, 2018

本文实例讲述了Python异常处理操作。分享给大家供大家参考,具体如下:

一、异常处理的引入

>>>whileTrue:
try:
x = int(input("Please enter a number: "))
break
exceptValueError:
print("Oops! That was no valid number. Try again ")
Please enter a number: y
Oops!That was no valid number.Try again
Please enter a number:1.3
Oops!That was no valid number.Try again
Please enter a number:5

二、try语句工作方式

1、执行try子句(在关键字try和关键字except之间的语句)

2、如果没有异常发生,忽略except子句,try子句执行后结束。

3、如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。

4、如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。

5、一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

6、处理程序将只针对对应的try子句中的异常进行处理。

7、一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

except (RuntimeError, TypeError, NameError):
    pass

8、最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出。

>>>import os
>>>try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
exceptOSErroras err:
print("OS error: {0}".format(err))
exceptValueError:
print("Could not convert data to an integer.")
except:
print("Unexpected error:", sys.exc_info()[0])
raise
OS error:[Errno2]No such file or directory:'myfile.txt'

三、else子句

try except 语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。这个子句将在try子句没有发生任何异常的时候执行。

>>>try:
f = open('a.txt','r')
exceptIOError:
print('cannot open')
except:
print('other ERR')
else:
print('file close')
f.close()
cannot open

使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到的、而except又没有捕获的异常。

四、异常处理try中函数

异常处理并不仅仅处理那些直接发生在try子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。

>>>def this_fails():
x =1/0
>>>try:
this_fails()
exceptZeroDivisionErroras err:
print('Handling run-time error:', err)
Handling run-time error: division by zero

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
Python常见反爬虫机制解决方案
Jun 01 Python
python定义具名元组实例操作
Feb 28 Python
Python机器学习之PCA降维算法详解
May 19 Python
Python pandas求方差和标准差的方法实例
Aug 04 Python
解决python3 网络请求路径包含中文的问题
May 10 #Python
Python之文字转图片方法
May 10 #Python
Python实现查看系统启动项功能示例
May 10 #Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 #Python
Python实现修改IE注册表功能示例
May 10 #Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 #Python
python 识别图片中的文字信息方法
May 10 #Python
You might like
解析php中call_user_func_array的作用
2013/06/07 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
php实现数字补零的方法总结
2018/09/12 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
javascript arguments使用示例
2014/12/16 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
Vue列表页渲染优化详解
2017/07/24 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
python aiohttp的使用详解
2019/06/20 Python
python检测服务器端口代码实例
2019/08/31 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
追悼会子女答谢词
2014/01/28 职场文书
总经理人事任命书
2014/06/05 职场文书
五四演讲稿范文
2014/09/03 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
使用python生成大量数据写入es数据库并查询操作(2)
2022/09/23 Python