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操作xml文件详细介绍
Jun 09 Python
Python中的yield浅析
Jun 16 Python
详解Python中的type()方法的使用
May 21 Python
在Django的模板中使用认证数据的方法
Jul 23 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
python 实现敏感词过滤的方法
Jan 21 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Python中请不要再用re.compile了
Jun 30 Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 Python
python 子类调用父类的构造函数实例
Mar 12 Python
python定时截屏实现
Nov 02 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
解析PHP中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JS判断页面是否出现滚动条的方法
2015/07/17 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
PHP笔试题
2012/02/22 面试题
审计工作个人的自我评价
2013/12/25 职场文书
25岁生日感言
2014/01/13 职场文书
50岁生日感言
2014/01/23 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
优秀员工获奖感言
2014/03/01 职场文书
科研课题实施方案
2014/03/18 职场文书
升旗仪式主持词
2014/03/19 职场文书
公司授权委托书范本
2014/04/03 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书