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运行的17个时新手常见错误小结
Aug 07 Python
Python删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python中的面向对象编程详解(上)
Apr 13 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
Python 探针的实现原理
Apr 23 Python
python scp 批量同步文件的实现方法
Jan 03 Python
浅谈python标准库--functools.partial
Mar 13 Python
python 命令行传入参数实现解析
Aug 30 Python
PyCharm下载和安装详细步骤
Dec 17 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
python 多态 协议 鸭子类型详解
Nov 27 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
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript错误处理
2015/02/03 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
2016/01/28 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
JS DOMReady事件的六种实现方法总结
2016/11/23 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
python str与repr的区别
2013/03/23 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
解决方案设计综合面试题
2015/08/31 面试题
项目建议书怎么写
2014/05/15 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
面试通知短信
2015/04/20 职场文书
教师文明餐桌光盘行动倡议书
2015/04/28 职场文书
学生会招新宣传语
2015/07/13 职场文书
2015教师节通讯稿
2015/07/20 职场文书