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实现百度关键词排名查询
Mar 30 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
Python虚拟环境项目实例
Nov 20 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
Python 输入一个数字判断成绩分数等级的方法
Nov 15 Python
Python类装饰器实现方法详解
Dec 21 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Django实现将一个字典传到前端显示出来
Apr 03 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
php简单截取字符串代码示例
2016/10/19 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
JS 面向对象的5钟写法
2009/07/31 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
python入门之井字棋小游戏
2020/03/05 Python
python中tab键是什么意思
2020/06/18 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL