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中字符串前面加r的作用
Jun 04 Python
Python Flask-web表单使用详解
Nov 18 Python
django模板语法学习之include示例详解
Dec 17 Python
10个Python小技巧你值得拥有
Sep 29 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
tensorflow 变长序列存储实例
Jan 20 Python
Python生成器next方法和send方法区别详解
May 30 Python
python 动态绘制爱心的示例
Sep 27 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的array_multisort()使用方法介绍
2012/05/16 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
关于python中的xpath解析定位
2020/03/06 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
优秀员工评语
2014/02/10 职场文书
广告学专业自荐信范文
2014/02/24 职场文书
《日月潭》教学反思
2014/02/28 职场文书
创先争优承诺书范文
2014/03/31 职场文书
师范生见习报告范文
2014/11/03 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
企业管理不到位检讨书
2019/06/27 职场文书