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使用opencv进行人脸识别
Apr 07 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
运行django项目指定IP和端口的方法
May 14 Python
Python OpenCV利用笔记本摄像头实现人脸检测
Aug 20 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
Python计算两个矩形重合面积代码实例
Sep 16 Python
Django 5种类型Session使用方法解析
Apr 29 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Keras 加载已经训练好的模型进行预测操作
Jun 17 Python
Python Django路径配置实现过程解析
Nov 05 Python
Django 如何实现文件上传下载
Apr 08 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
2015/08/18 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
JS实现跟随鼠标闪烁转动色块的方法
2015/02/26 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
vue实现微信分享功能
2018/11/28 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
Python中的Numpy入门教程
2014/04/26 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python异常对代码运行性能的影响实例解析
2018/02/08 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
校园歌手大赛策划书
2014/01/17 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
师范类求职信
2014/06/21 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
民事辩护词范文
2015/05/21 职场文书