Python异常的检测和处理方法


Posted in Python onOctober 26, 2018

捕获异常

# 对数字变量使用append操作
a = 123
a.apppend(4)

执行这个程序时,会抛出:

AttributeError: 'int' object has no attribute 'apppend'

我们使用try:except语句进行捕获。

# 捕获异常
a = 123
try:
  a.apppend(4)
except AttributeError:
   print("数字类型不能使用append操作")

输出结果如下:

数字类型不能使用append操作

捕获多个异常

# 捕获异常
a = 123
try:
  # a.apppend(4)
  print(1/0)
except AttributeError:
   print("数字类型不能使用append操作")
except ZeroDivisionError:
   print("0不能作为除数")

输出结果:

0不能作为除数

当然也可以类似JDK1.7那样,把异常放置到一起。

# 捕获异常
a = 123
try:
  a.apppend(4)
  # print(1/0)
except (AttributeError,ZeroDivisionError) as e:
   print("出现错误 %s" %e)

把异常类型放置到一个元祖里面,如果想打印具体的异常信息,可以将异常信息重新命名,然后打印出来。

输出结果如下:

出现错误 'int' object has no attribute 'apppend'

使用Exception捕获所有异常

# 捕获异常
a = 123
try:
  print(1/'kk')
except Exception as e:
   print("出现错误 %s" %e)

统一用Exception进行捕获,输出结果如下:

出现错误 unsupported operand type(s) for /: 'int' and 'str'

自定义异常

# 捕获异常
a = 123
try:
  if a == 123:
    raise NameError("a是不能等于123的哦")
except NameError as e:
   print("出现错误 %s" %e)

可以使用raise关键字和NameError,输出结果如下:

出现错误 a是不能等于123的哦

finally语句

try:
  print(1/0)
except Exception as e:
   print("出现错误 %s" %e)
finally:
   print("执行finally")

执行结果如下:

出现错误 division by zero
执行finally

说明就算抛出了一次,finally语句仍然会被执行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python HTMLParser模块解析html获取url实例
Apr 08 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
Python安装与基本数据类型教程详解
May 29 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
Python partial函数原理及用法解析
Dec 11 Python
Python:type、object、class与内置类型实例
Dec 25 Python
Django分组聚合查询实例分享
Apr 29 Python
Python 解析简单的XML数据
Jul 24 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
用Python爬虫破解滑动验证码的案例解析
May 06 Python
Python subprocess库的使用详解
Oct 26 #Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 #Python
Python分割指定页数的pdf文件方法
Oct 26 #Python
python 将json数据提取转化为txt的方法
Oct 26 #Python
python读取TXT每行,并存到LIST中的方法
Oct 26 #Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 #Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 #Python
You might like
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
js实现筛选功能
2020/11/24 Javascript
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
办公室前台岗位职责
2014/01/04 职场文书
五一手机促销方案
2014/03/08 职场文书
让生命充满爱演讲稿
2014/05/10 职场文书
2014年国庆节寄语
2014/09/19 职场文书
军事理论课感想
2015/08/11 职场文书
css清除浮动clearfix:after的用法详解(附完整代码)
2023/05/21 HTML / CSS