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之import机制详解
Jul 03 Python
python获取本机外网ip的方法
Apr 15 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
Python使用wxPython实现计算器
Jan 30 Python
详解Django的CSRF认证实现
Oct 09 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Python3实现腾讯云OCR识别
Nov 27 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
windows python3安装Jupyter Notebooks教程
Apr 13 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
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
PHP和XSS跨站攻击的防范
2007/04/17 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
php实现无限级分类
2014/12/24 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
javascript事件问题
2009/09/05 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
2015/02/27 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
javascript禁止超链接跳转的方法
2016/02/02 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
python实现两张图片的像素融合
2019/02/23 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
Linux的文件类型
2012/03/07 面试题
土木工程专业大学毕业生求职信
2013/10/13 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
淘宝客服工作职责
2014/07/11 职场文书
装修活动策划方案
2014/08/27 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript