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 相关文章推荐
Python创建日历实例
Aug 21 Python
利用python批量检查网站的可用性
Sep 09 Python
python并发2之使用asyncio处理并发
Dec 21 Python
浅谈python中requests模块导入的问题
May 18 Python
Python实现端口检测的方法
Jul 24 Python
在python中pandas读文件,有中文字符的方法
Dec 12 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
Python-jenkins模块获取jobs的执行状态操作
May 12 Python
django queryset 去重 .distinct()说明
May 19 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
python 制作磁力搜索工具
Mar 04 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 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函数与传递参数实例分析
2014/11/15 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python获取当前路径实现代码
2017/05/08 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python爬虫之Selenium实现关闭浏览器
2020/12/04 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
数控个人求职信范文
2014/02/03 职场文书
办公室副主任职责范本
2014/03/08 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS