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 相关文章推荐
在Linux命令行终端中使用python的简单方法(推荐)
Jan 23 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
Python多线程编程之多线程加锁操作示例
Sep 06 Python
对python调用RPC接口的实例详解
Jan 03 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
Python实现Event回调机制的方法
Feb 13 Python
Python异步操作MySQL示例【使用aiomysql】
May 16 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
Selenium浏览器自动化如何上传文件
Apr 06 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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 date与gmdate的获取日期的区别
2010/02/08 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
python之yield表达式学习
2014/09/02 Python
用Python实现KNN分类算法
2017/12/22 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
大学生求职自荐信
2013/12/12 职场文书
医院实习接收函
2014/01/12 职场文书
租房协议书范文
2014/08/20 职场文书
天河观后感
2015/06/11 职场文书
新生儿未入户证明
2015/06/23 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
mysql使用 not int 子查询隐含陷阱
2022/04/12 MySQL