Python try except异常捕获机制原理解析


Posted in Python onApril 18, 2020

当你执行大型程序的时候,突然出现exception,会让程序直接停止,这种对服务器自动程序很不友好,而python有着较好的异常捕获机制,不会立刻终止程序。

这个机制就是try-except。

1. 发生异常时可配置备用程序

aa = [1,2,4,5,7,0,2]
for ii in aa:
  try:
    h = 2/ii
    print(h)
  except:  #发生异常时备用
    h = 2/(ii+1)
    print(h)

Python try except异常捕获机制原理解析

2. 单个异常捕获

dict_ = {}
try:
  print(dict_['test'])
  print(' --- testing... --- ')
except KeyError as e:
  print('--- the error is ---:', e)  #单个异常
print(' ---finished!!--- ')

Python try except异常捕获机制原理解析

3. 多个异常捕获,循环中

num = [9,7,0,1,4,'16']
for x in num:
  try: 
    print (1/x)
  except ZeroDivisionError:
    print('error:0做除数!')
  except TypeError: # 当报错信息为TypeError,执行下面的语句。
    print('error:数值类型错误!')
print(' ---finished!!--- ')

Python try except异常捕获机制原理解析

4. 通用异常:Exception,当你不知道异常的种类或者多少异常的时候,可以使用通用异常捕获,同时通用异常可以与特定异常混用。

num = [9,7,0,1,4,'16']
for x in num:
  try: 
    print (1/x)
  except ZeroDivisionError:
    print('error:0做除数!')  #特定异常和Exception混合使用
  except Exception as e:
    print('the Exception is:',e)
print(' ---finished!!--- ')

Python try except异常捕获机制原理解析

5. else语句:在被检测的代码块没有发生异常时执行

dict_ = {'test':'这个地方是哪里?'}
try:
  print(dict_['test'])
  print(' --- testing... --- ')
except KeyError as e:
  print('--- the error is ---:', e)  #单个异常
else:
  print('没有发生异常!')
print(' ---finished!!--- ')

Python try except异常捕获机制原理解析

6. finally语句:不管有没有发生异常都会执行

dict_ = {'test':'这个地方是哪里?'}
try:
  print(dict_['test'])
  print(' --- testing... --- ')
except KeyError as e:
  print('--- the error is ---:', e)  #单个异常
else:
  print('没有发生异常!')
finally:
  print('总可以被执行的语句。。。')
print(' ---finished!!--- ')

Python try except异常捕获机制原理解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用分治法实现求解最大值的方法
May 12 Python
python发送邮件脚本
May 22 Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 Python
在Python中pandas.DataFrame重置索引名称的实例
Nov 06 Python
Python自动发送邮件的方法实例总结
Dec 08 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Python实现图片识别加翻译功能
Dec 26 Python
python代码xml转txt实例
Mar 10 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
序列化Python对象的方法
Aug 01 Python
五种Python转义表示法
Nov 27 Python
基于 Python 实践感知器分类算法
Jan 07 Python
Python数据正态性检验实现过程
Apr 18 #Python
如何基于线程池提升request模块效率
Apr 18 #Python
新建文件时Pycharm中自动设置头部模板信息的方法
Apr 17 #Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 #Python
jupyter notebook中美观显示矩阵实例
Apr 17 #Python
Python3将ipa包中的文件按大小排序
Apr 17 #Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 #Python
You might like
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
鼠标图片振动代码
2006/07/06 Javascript
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
js编写选项卡效果
2017/05/23 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
python实现计算资源图标crc值的方法
2014/10/05 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
python实现zabbix发送短信脚本
2018/09/17 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python元组常见操作示例
2019/02/19 Python
python 堆和优先队列的使用详解
2019/03/05 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
2014年银行工作总结范文
2014/11/12 职场文书
五年级小学生评语
2014/12/26 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
员工给公司的建议书
2019/06/24 职场文书
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技