##python的try语句有两种风格:

  • 一:处理异常(try/except/else)
  • 二:无论是否发生异常都将执行最后的代码(try/finally)

#try 语句子句形式表

  • except: 捕获所有异常
  • except name: 只捕获特定的异常
  • except name as value: 捕获异常和它的附加数据(将异常的信息保存到value,)
  • except (name1,name2): 捕获任何列出的异常
  • else: 如果没有异常
  • finally: 总是执行

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

  • 1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
  • 2、如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
  • 3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

#一、try/except/else风格

#try/except/else风格
try:pass
except <异常名字>: <语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:<语句> #如果引发了'name'异常,获得附加的数据
else:<语句> #如果没有异常发生#实例:
try:print('xxx')   #如果try的子语句能够实现,则执行这个语句。整个流程走向else,然后控制流通过整个try语句。
except:print('error')
else:print(1)

输出:

xxx
1

如果是 try 的子语句不能执行时,则会执行 except 语句,异常处理完毕,控制流就通过整个try语句;

try:print(xxx)
except:print('error')
else:print(1)

输出:

#执行except就不会执行else
error

#二、try/finally风格

try:<语句>
finally:<语句> #退出try时总会执行
try:print(kk)
except:print('error')
finally:print('ok')

输出:

error
ok  #finally的内容是一定会执行的
捕获所有异常:
try:xxxx
except Exception as e:print(e)

【python】详解 try 处理异常机制相关推荐

  1. 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)

    在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...

  2. 详解模板引擎工作机制

    本文讲的是详解模板引擎工作机制, 我已经使用各种模版引擎很久了,现在终于有时间研究一下模版引擎到底是如何工作的了. 简介 简单的说,模版引擎是一种可以用来完成涉及大量文本数据的编程任务的工具.一般而言 ...

  3. python input与返回值-Python 详解基本语法_函数_返回值

    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令 ...

  4. python选择排序从大到小_经典排序算法和Python详解之(一)选择排序和二元选择排序...

    本文源自微信公众号[Python编程和深度学习]原文链接:经典排序算法和Python详解之(一)选择排序和二元选择排序,欢迎扫码关注鸭! 扫它!扫它!扫它 排序算法是<数据结构与算法>中最 ...

  5. 我的世界Java版最大村庄_我的世界19w11a:详解MC全新村庄机制,我已经准备好重开存档了!...

    已经两周没见到JAVA版的快照了,难道Mojang在憋大招么?没错,本周快照19w11a确实是憋了一个大招! 我的世界19w11a:正式版发布不远了!村庄大改完成,全新交易来袭我的世界19w11a:详 ...

  6. STM32串口通信详解以及通信异常或者卡死常见问题分析

    STM32串口通信详解以及通信异常或者卡死常见问题分析 目录 STM32串口通信详解以及通信异常或者卡死常见问题分析 一.常见的异常问题 二.STM32的串口简介 1.串口的通讯方式 ①按数据传输方向 ...

  7. 详解数据库的锁机制及原理

    详解数据库的锁机制及原理 1.数据库锁的分类 2.行锁 共享锁(读锁S锁) 排他锁(写锁X锁) 更新锁 3.意向锁(IX/IS锁) 4.锁机制解释数据库隔离级别 5.元数据锁(MDL锁) 6.间隙锁 ...

  8. 烤仔TVのCCW | 详解 Conflux 的 Blaming 机制(2)

    大家好,欢迎收看 Conflux Chain Webinar. 在全民战"疫"的关键时期,宅家的小伙伴不如和烤仔一起学习区块链知识吧. 上学期,我们为大家讲解到为了把区块链共识层和 ...

  9. 一文详解 Try 和异常的区别

    作者 | 羽生结弦 责编 | 胡雪蕊 出品 | CSDN(ID:CSDNnews) Try 以及异常在C#中是很重要的内容,很多开发人员其实并不是很了解Try 和异常.在这篇文章中我将会各大家具体讲解 ...

最新文章

  1. 《Delphi 算法与数据结构》学习与感悟[3]: 获取一个字节中非空位的个数
  2. [原创] hadoop学习笔记:wordcout程序实践
  3. 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd
  4. 虚拟机dhcp服务器怎么检验,实验十二虚拟机上DHCP服务器的配置和验证.doc
  5. centos6/7安装gitlab
  6. 根据端口查找是那个程序正在占用
  7. ssis 列转换_SSIS包中的行采样转换和百分比采样转换
  8. loadrunner—web_url
  9. Python-二分及bisect模块
  10. process.nextTick
  11. qt 程序中读取 DXL360 倾角仪的数据
  12. istio搭建testbed 补充(指令汇集)
  13. 实施工程师面试技巧 –立哥经验
  14. echarts地图api series_使用echarts结合百度地图API做迁徙图
  15. Eclipse 下载,安装,配置教程
  16. oracle32位迁移64位,Windows下Oracle10g32位遷移到11g64位
  17. Greenplum 分布键 distribute hash分布和随机分布
  18. 免费开源的几款Web服务器软件简介
  19. 华师大 OJ 2897
  20. Greenplum实战--standby master的模拟故障与修复

热门文章

  1. C++书籍推荐与阅读顺序
  2. AMD黑苹果万能显卡驱动
  3. 2022全新伯乐发卡系统源码+无需授权/附多模板
  4. AcWing算法提高课-3.1.2信使
  5. 【PMP】学习笔记 三点估算法 挣值管理 折旧法 沟通渠道计算
  6. 小学数学与计算机整合课优质教案,数学教案-小学数学与信息技术整合教案
  7. 【广度优先搜索-中等】130. 被围绕的区域
  8. 计算机动画 应用,计算机动画技术在多媒体科普作品中的应用
  9. log4j2设置每天日志文件数和每个日志文件大小
  10. mysql执行sql语句按钮_mysql执行sql语句过程