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解析文件示例
Jan 23 Python
浅析Python中的for 循环
Jun 09 Python
使用python实现生成用户信息
Mar 20 Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 Python
利用Python进行异常值分析实例代码
Dec 07 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
详解python中的线程
Feb 10 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
解析python 类方法、对象方法、静态方法
Aug 15 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
python 装饰器的基本使用
Jan 13 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
截获网站title标签之家内容的例子
2006/10/09 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
js 数组操作代码集锦
2009/04/28 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
python算法题 链表反转详解
2019/07/02 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
在django中自定义字段Field详解
2019/12/03 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
大学理论知识学习自我鉴定
2014/04/28 职场文书
我的梦想演讲稿
2014/04/30 职场文书
面试自我评价范文
2014/09/17 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
Python基础知识学习之类的继承
2021/05/31 Python
Python爬取某拍短视频
2021/06/11 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python