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中各种方法的运作原理
Jun 15 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
答题辅助python代码实现
Jan 16 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
django 中使用DateTime常用的时间查询方式
Dec 03 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
python生成任意频率正弦波方式
Feb 25 Python
keras多显卡训练方式
Jun 10 Python
提取视频中的音频 Python只需要三行代码!
May 10 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生成随机密码的几种方法
2011/01/17 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
vue实现登录拦截
2020/06/29 Javascript
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
python中字符串前面加r的作用
2015/06/04 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python中的 enum 模块源码详析
2019/01/09 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
产品销售员岗位职责
2013/12/18 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
竞选村长演讲稿
2014/04/28 职场文书
公务员年度考核评语
2014/12/31 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
关于maven依赖 ${xxx.version}报错问题
2022/01/18 Java/Android