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在linux中输出带颜色的文字的方法
Jun 19 Python
Python实现生成简单的Makefile文件代码示例
Mar 10 Python
python面向对象_详谈类的继承与方法的重载
Jun 07 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
python TKinter获取文本框内容的方法
Oct 11 Python
Python 从相对路径下import的方法
Dec 04 Python
python树莓派红外反射传感器
Jan 21 Python
利用python-docx模块写批量生日邀请函
Aug 26 Python
wxpython绘制圆角窗体
Nov 18 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
如何基于pandas读取csv后合并两个股票
Sep 25 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对称加密算法示例
2014/05/07 PHP
使用URL传输SESSION信息
2015/07/14 PHP
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
js实现的tab标签切换效果代码分享
2015/08/25 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
Django中的AutoField字段使用
2020/05/18 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
纯css3实现走马灯效果
2014/12/26 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
党性分析材料格式
2014/12/19 职场文书
车辆管理制度范本
2015/08/05 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电