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 相关文章推荐
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 Python
用Python进行行为驱动开发的入门教程
Apr 23 Python
Python中max函数用于二维列表的实例
Apr 03 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
启动Atom并运行python文件的步骤
Nov 09 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python实现感知机线性分类模型示例代码
Jun 02 Python
python搜索包的路径的实现方法
Jul 19 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
python实现MD5进行文件去重的示例代码
Jul 09 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/02/10 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
JavaScript实现自动跳转文本功能
2017/05/25 Javascript
在一般处理程序(ashx)中弹出js提示语
2017/08/16 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
用C++封装MySQL的API的教程
2015/05/06 Python
Python制作数据导入导出工具
2015/07/31 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
大学生职业规划书的范本
2014/02/18 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
入团介绍人意见范文
2015/06/04 职场文书
运输公司工作总结
2015/08/11 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript