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中操作文件之read()方法的使用教程
May 24 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
使用python爬取B站千万级数据
Jun 08 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
详解Python循环作用域与闭包
Mar 21 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
ASP.NET Core中的配置详解
Feb 05 Python
python小型的音频操作库mp3Play
Apr 24 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
php json与xml序列化/反序列化
2013/10/28 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
javascript脚本调试方法小结
2008/11/24 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
手机端转换rem适应
2017/04/01 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
python适合人工智能的理由和优势
2019/06/28 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
个人优缺点自我评价
2014/01/27 职场文书
高中生期末评语
2014/01/28 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
考研英语复习计划
2015/01/19 职场文书
转正申请报告格式
2015/05/15 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL