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中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python栈类实例分析
Jun 15 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
python实现扫描日志关键字的示例
Apr 28 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python替换字符串中的子串图文步骤
Jun 19 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
Python基础之元编程知识总结
May 23 Python
python实现商品进销存管理系统
May 30 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
JQuery结合CSS操作打印样式的方法
2013/12/24 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python中常见的异常总结
2018/02/20 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python3爬虫之设计签名小程序
2018/06/19 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python中添加模块导入路径的方法
2021/02/03 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
运动会广播稿400字
2014/01/25 职场文书
喝酒检查书范文
2014/02/23 职场文书
献爱心活动总结
2014/05/07 职场文书
运动会报道稿300字
2014/10/02 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers