python如何写try语句


Posted in Python onJuly 14, 2020

python的try语句有两种风格

一是处理异常(try/except/else)

二是无论是否发生异常都将执行最后的代码(try/finally)

try/except/else风格

try:
    <语句> #运行的代码
except <名字>:
    <语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
    <语句> #如果引发了'name'异常,获得附加的数据
else:
    <语句> #如果没有异常发生

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

2、如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

try/finally风格

try:
    <语句>
finally:
    <语句> #退出try时总会执行

python总会执行finally子句,无论try子句执行时是否发一异常。

1、如果没有发生异常,python运行try子句,然后是finally子句,然后继续。

2、如果在try子句发生了异常,python就会回来执行finally子句,然后把异常递交给上层try,控制流不会通过整个try语句。
当你想无论是否发生异常都确保执行某些代码时,try/finally是有用的。

这个在打开文件的时候有用 finally总是在最后close()文件

try语句子句形式表

  • except: 捕获所有异常
  • except name: 只捕获特定的异常
  • except name,value: 捕获异常和它的附加数据(将异常的信息保存到value,)
  • except (name1,name2): 捕获任何列出的异常
  • else: 如果没有异常
  • finally: 总是执行
try:
   f = open('file.txt')
except IOError, e:
   print e
else:
   print 'wrong'
[Errno 2] No such file or directory: 'file.txt'

最新的python版本 支持try/except/finally

1:如果x没有异常,执行z,i

2:如果x有异常:

一:如果except捕捉到异常则执行y,i

二:没捕捉到,执行i,然后返回内置异常处理

try:    
     x
except(name):   
     y
else:    
   z
finally:  
   i

到此这篇关于python如何写try语句的文章就介绍到这了,更多相关python写try语句的方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
python中单例常用的几种实现方法总结
Oct 13 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
Tensorflow 实现释放内存
Feb 03 Python
python 元组的使用方法
Jun 09 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
Python代码执行时间测量模块timeit用法解析
Jul 01 Python
python如何安装下载后的模块
Jul 03 Python
python简单利用字典破解zip文件口令
Sep 07 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
Nov 17 Python
python井字棋游戏实现人机对战
Apr 28 Python
Python操作MySQL数据库的示例代码
Jul 13 #Python
Python基于正则表达式实现计算器功能
Jul 13 #Python
python输出结果刷新及进度条的实现操作
Jul 13 #Python
python实现图像外边界跟踪操作
Jul 13 #Python
Python实现打包成库供别的模块调用
Jul 13 #Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 #Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 #Python
You might like
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
window.dialogArguments 使用说明
2011/04/11 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
vue不通过路由直接获取url中参数的方法示例
2017/08/24 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
python获得文件创建时间和修改时间的方法
2015/06/30 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
护理专业毕业生自荐信范文
2014/01/05 职场文书
保护环境的标语
2014/06/09 职场文书
导航工程专业自荐信
2014/09/02 职场文书
2015年公司工作总结
2015/04/25 职场文书
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript