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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
把csv文件转化为数组及数组的切片方法
Jul 04 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
python配置grpc环境
Jan 01 Python
python字符串循环左移
Mar 08 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
Tensorflow 多线程设置方式
Feb 06 Python
用python介绍4种常用的单链表翻转的方法小结
Feb 24 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
解决Python安装cryptography报错问题
Sep 03 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 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生成略缩图代码
2012/07/16 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
pyqt4教程之widget使用示例分享
2014/03/07 Python
零基础写python爬虫之神器正则表达式
2014/11/06 Python
Python实现批量下载文件
2015/05/17 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
html5中地理位置定位api接口开发应用小结
2013/01/04 HTML / CSS
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
玄武湖导游词
2015/02/05 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
90行Python代码开发个人云盘应用
2021/04/20 Python