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之BeautifulSoup
Jul 07 Python
python使用socket连接远程服务器的方法
Apr 29 Python
在Python中操作文件之seek()方法的使用教程
May 24 Python
python素数筛选法浅析
Mar 19 Python
使用Python处理BAM的方法
Sep 28 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
Django学习之文件上传与下载
Oct 06 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 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的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
jQuery点击输入框显示验证码图片
2016/05/19 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
python逆向入门教程
2018/01/15 Python
使用tensorflow实现线性svm
2018/09/07 Python
python制作抖音代码舞
2019/04/07 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
python软件都是免费的吗
2020/06/18 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
Ruby如何实现动态方法调用
2012/11/18 面试题
向领导表决心的话
2014/03/11 职场文书
广告语设计及教案
2014/03/21 职场文书
大学生新学期计划书
2014/04/28 职场文书
软件项目开发计划书
2014/05/01 职场文书
社区戒毒工作方案
2014/06/04 职场文书
商场促销活动策划方案
2014/08/18 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
任长霞观后感
2015/06/16 职场文书