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 mysqldb连接数据库
Mar 16 Python
Python实现的石头剪子布代码分享
Aug 22 Python
python3编码问题汇总
Sep 06 Python
Python扩展内置类型详解
Mar 26 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
Python SSL证书验证问题解决方案
Jan 13 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
Feb 02 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学习笔记 类的声明与对象实例化
2011/06/13 PHP
php正则表达式(regar expression)
2011/09/10 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
jquery注册文本框获取焦点清空,失去焦点赋值的简单实例
2016/09/08 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
Python装饰器decorator用法实例
2014/11/10 Python
python如何实现反向迭代
2018/03/20 Python
对pandas中Series的map函数详解
2018/07/25 Python
Python实现分数序列求和
2020/02/25 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
德购商城:德国进口直邮商城
2017/06/13 全球购物
开业典礼主持词
2014/03/21 职场文书
个人授权委托书格式
2014/08/30 职场文书
英文版辞职信
2015/02/28 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
小学运动会加油稿
2015/07/22 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android