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实现图片批量剪切示例
Mar 25 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 Python
详解Django中间件执行顺序
Jul 16 Python
详解numpy矩阵的创建与数据类型
Oct 18 Python
python实现udp聊天窗口
Mar 31 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
浅谈Python3中print函数的换行
Aug 05 Python
Flask中jinja2的继承实现方法及实例
Mar 03 Python
python基础之while循环语句的使用
Apr 20 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 之 没有mysql支持时的替代方案
2006/10/09 PHP
用php过滤危险html代码的函数
2008/07/22 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
jQuery前台数据获取实现代码
2011/03/16 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
python基础教程之字典操作详解
2014/03/25 Python
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
python flask实现分页效果
2017/06/27 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
基于Tensorflow批量数据的输入实现方式
2020/02/05 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
高中数学教师求职信
2013/10/30 职场文书
市场开发与营销专业求职信
2013/12/31 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
集体生日活动方案
2014/08/18 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
2014年后勤工作总结
2014/11/18 职场文书
新学期感想
2015/08/10 职场文书
爱国主题班会教案
2015/08/14 职场文书
Golang流模式之grpc的四种数据流
2022/04/13 Golang