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中比较运算符的使用
May 13 Python
基础的十进制按位运算总结与在Python中的计算示例
Jun 28 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
Python多继承原理与用法示例
Aug 23 Python
python利用跳板机ssh远程连接redis的方法
Feb 19 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
Python的Lambda函数用法详解
Sep 03 Python
如何基于python测量代码运行时间
Dec 25 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 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+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
php实现异步数据调用的方法
2015/12/24 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
js如何实现淡入淡出效果
2020/11/18 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
js实现简单点赞操作
2020/03/17 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
centos下更新Python版本的步骤
2013/02/12 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
测试工程师岗位职责
2013/11/28 职场文书
《草原》教学反思
2014/02/15 职场文书
建筑工地标语
2014/06/18 职场文书
学校工作推荐信范文
2014/07/11 职场文书
教育见习报告范文
2014/11/03 职场文书
公证书格式
2015/01/23 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server
pandas中pd.groupby()的用法详解
2022/06/16 Python