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 学习笔记
Dec 27 Python
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
服务器端jupyter notebook映射到本地浏览器的操作
Apr 14 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
python 读取、写入txt文件的示例
Sep 27 Python
Python内置函数及功能简介汇总
Oct 13 Python
Python字符串查找基本操作代码案例
Oct 27 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
农民C键的运用技巧
2020/03/04 星际争霸
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python实现简单的代理服务器
2015/07/25 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
介绍java中初始化块的使用
2012/09/11 面试题
服装创业计划书范文
2014/02/05 职场文书
年检委托书
2014/08/30 职场文书
党员十八大心得体会
2014/09/12 职场文书
高中生学习计划书
2014/09/15 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
毕业论文指导老师意见
2015/06/04 职场文书