当前位置: 首页 > news >正文

圆方圆:python的错误处理——try语句

最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台:78486745 。
复制代码

当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。

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时总会执行finally语句 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 as e: print e else: print 'wrong' [Errno 2] No such file or directory: 'file.txt' try/except/finally:

#1:如果x没有异常,执行z,i #2:如果x有异常, #一:如果except捕捉到异常则执行y,i #二:没捕捉到,执行i,然后返回内置异常处理

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

相关文章:

  • 洛谷 P1824 【进击的奶牛】
  • 自学自用 = B站(操作系统_清华大学(向勇、陈渝))1
  • Docker下部署自己的LNMP工作环境
  • Docker-01-使用镜像
  • C# 分割字符串
  • LDM和STM指令
  • java B2B2C Springcloud电子商城系统-搭建一个简单的Eureka程序
  • 传闻 Android Q 将支持手机应用版本回滚
  • MD5加密原理解析及OC版原理实现
  • linux环境安装golang
  • 国际乒联2月世界排名:樊振东、丁宁持续领跑
  • 李嘉诚23岁长孙女登场接班!出任地产公司董事,照片曝光气质获赞
  • Nginx实现动静分离
  • Java基础教程,第四讲,字符串使用以及常用字符串处理函数
  • 树链剖分算法解析
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Angular数据绑定机制
  • canvas 五子棋游戏
  • ES6核心特性
  • GitUp, 你不可错过的秀外慧中的git工具
  • HTTP中GET与POST的区别 99%的错误认识
  • javascript 总结(常用工具类的封装)
  • JavaScript类型识别
  • Python_网络编程
  • python学习笔记 - ThreadLocal
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vue ES6 Jade Scss Webpack Gulp
  • Vue.js 移动端适配之 vw 解决方案
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 高性能JavaScript阅读简记(三)
  • 深入浏览器事件循环的本质
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 学习使用ExpressJS 4.0中的新Router
  • 栈实现走出迷宫(C++)
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • #HarmonyOS:Web组件的使用
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (11)MSP430F5529 定时器B
  • (8)STL算法之替换
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)可以带来幸福的一本书
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .apk文件,IIS不支持下载解决
  • .net core 连接数据库,通过数据库生成Modell
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET面试题(二)
  • @requestBody写与不写的情况
  • [Angular 基础] - 自定义指令,深入学习 directive
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例