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中的jquery PyQuery库使用小结
May 13 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python常用排序算法的实现代码
Nov 08 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
通过实例解析python描述符原理作用
Jan 22 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
Feb 12 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
python中如何进行连乘计算
May 28 Python
容易被忽略的Python内置类型
Sep 03 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
html超链接打开窗口大小的方法
2013/03/05 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
原生JS实现小小的音乐播放器
2017/10/16 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
python的id()函数解密过程
2012/12/25 Python
Python设计模式之代理模式实例
2014/04/26 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
python求质数的3种方法
2018/09/28 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
中学生社会实践活动总结
2014/07/03 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
python获取淘宝服务器时间的代码示例
2021/04/22 Python
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL