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之眼花缭乱的运算符
Sep 14 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Python中遇到的小问题及解决方法汇总
Jan 11 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 Python
Python中turtle作图示例
Nov 15 Python
python中cPickle类使用方法详解
Aug 27 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
解决Python中回文数和质数的问题
Nov 24 Python
python实现邮件循环自动发件功能
Sep 11 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 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
逆序二维数组插入一元素的php代码
2012/06/08 PHP
php发送邮件的问题详解
2015/06/22 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
使用jQuery重置(reset)表单的方法
2014/05/05 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
Python中操作mysql的pymysql模块详解
2016/09/13 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
Python flask框架端口失效解决方案
2020/06/04 Python
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
别名指示符是什么
2012/10/08 面试题
蓝颜请假条
2014/04/11 职场文书
企业承诺书格式
2014/05/21 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫