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实现从ftp服务器下载文件的方法
Apr 30 Python
python实现TCP服务器端与客户端的方法详解
Apr 30 Python
python单元测试unittest实例详解
May 11 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
Python饼状图的绘制实例
Jan 15 Python
Python实现程序判断季节的代码示例
Jan 28 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
python如何从文件读取数据及解析
Sep 19 Python
使用Pytorch训练two-head网络的操作
May 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中计算时间差的几种方法
2009/12/31 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
PHP数组操作类实例
2015/07/11 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
Javascript算符的优先级介绍
2013/03/20 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
python opencv 直方图反向投影的方法
2018/02/24 Python
wxPython的安装与使用教程
2018/08/31 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
关于VPN
2012/06/10 面试题
车辆安全检查制度
2014/01/12 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
家庭贫困证明书(3篇)
2014/09/15 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
刑事法律意见书
2015/06/04 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
box-shadow单边阴影的实现
2023/05/21 HTML / CSS