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编写脚本获取手机当前应用apk的信息
Jul 21 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
python django事务transaction源码分析详解
Mar 17 Python
Python实现的递归神经网络简单示例
Aug 11 Python
matplotlib作图添加表格实例代码
Jan 23 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
对Python中画图时候的线类型详解
Jul 07 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
Python基础类继承重写实现原理解析
Apr 03 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 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
web方式ftp
2006/10/09 PHP
由php if 想到的些问题
2008/03/22 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
解决eclipse中没有js代码提示的问题
2018/10/10 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
python实现祝福弹窗效果
2019/04/07 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
《欢乐的泼水节》教学反思
2014/04/22 职场文书
大学生求职计划书
2014/04/30 职场文书
感情真挚的毕业生求职信
2014/07/19 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
人事任命通知书
2015/04/21 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis