包含try...except...在3.x版本中与2.x版本中的用法差异。

1、先说差异:

在2.x的python中用法实例:

1 try:2 ......3 exceptException,e:4 raise e

在3.x的python中用法实例:

1 try:2 ......3 exceptException as e:4 raise e

好啦,两者差异经过对比一目了然(感觉这里说格式更好一点,但是格式与用法的成分都有,算了,就这样吧)。啦啦啦~

2、再说和异常相关的:

与Python异常相关的关键字

1 关键字 关键字说明2   raise 抛出/引发异常3   try/except捕获异常并处理4   pass忽略异常5   as 定义异常实例(exceptIOError as e)6   finally无论是否出现异常,都执行的代码7   else 如果try中的语句没有引发异常,则执行else中的语句的语句没有引发异常,则执行else中的语句

3、使用try和except语句来捕获异常

1 try:2 block3   except[exception,[data…]]:4 block

6   try:7 block8   except[exception,[data...]]:9 block10   else:11   block

该种异常处理语法的规则是:

·   执行try下的语句,如果引发异常,则执行过程会跳到第一个except语句。

·   如果第一个except中定义的异常与引发的异常匹配,则执行该except中的语句。

·   如果引发的异常不匹配第一个except,则会搜索第二个except,允许编写的except数量没有限制。

·   如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。

·   如果没有发生异常,则执行else块代码。

一个 try...except 块可以有一条 else 子句,就像 if 语句。如果在 try 块中没有异常引发,然后 else 子句被执行。

4、采用traceback(跟踪)模块查看异常

发生异常时,Python能“记住”引发的异常以及程序的当前状态。Python还维护着traceback(跟踪)对象,其中含有异常发生时与函数调用 堆栈有关的信息。记住,异常可能在一系列嵌套较深的函数调用中引发。程序调用每个函数时,Python会在“函数调用堆栈”的起始处插入函数名。一旦异常 被引发,Python会搜索一个相应的异常处理程序。如果当前函数中没有异常处理程序,当前函数会终止执行,Python会搜索当前函数的调用函数,并以 此类推,直到发现匹配的异常处理程序,或者Python抵达主程序为止。这一查找合适的异常处理程序的过程就称为“堆栈辗转开解”(Stack Unwinding)。解释器一方面维护着与放置堆栈中的函数有关的信息,另一方面也维护着与已从堆栈中“辗转开解”的函数有关的信息。

5、常用异常名称:

1 异常名 描述2 AttributeError  调用不存在的方法引发的异常3 EOFError 到文件末尾引发的异常4 ImportError 导入模块出错引发的异常5 IndexError 列表越界引发的异常6 IOError I/O操作引发的异常,如打开文件出错等7 KeyError 使用字典中不存在的关键字引发的异常8 NameError 使用不存在的变量名引发的异常9 TabError 语句块缩进不正确引发的异常10 ValueError 搜索列表中不存在的值引发的异常11 ZeroDivisionError 除数为零引发的异常

try except python3.7_python3.X中try/except相关推荐

  1. opencv安装教程python3.7_Python3.7中安装openCV库的方法

    1.首先自己直接在cmd中输入 pip3 install openCV是不可行的,即需要自己下载安装包本地安装 2.openCV库 下载地址http://www.lfd.uci.edu/~gohlke ...

  2. python在企业有哪些应用_python2和python3在企业中应用有哪些

    原标题:python2和python3在企业中应用有哪些 即将进入到人工智能时代的今天,大家也对人工智能学习,Python学习非常感兴趣.那么,如果不自学,Python"人工智能编程培训&q ...

  3. arduino跑python,尝试在我的Arduino和stu上执行Python3.7.2中的代码

    提前谢谢你.在 我会尽量简短.在 我有一个Arduino+IDE,有一个串行端口,工作正常. 我下载了python3.7.2.PySerial和VPython. 全部安装完毕.在 通过我的MacBoo ...

  4. python3文件下载-python3获取文件中url内容并下载代码实例

    这篇文章主要介绍了python3获取文件中url内容并下载代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #!/usr/bin/env py ...

  5. ios怎么安装python3.7_Python3、PyCharm的安装及使用方法(Mac版)

    Python3.PyCharm的安装及使用方法(Mac版) 进入Python官网,点击Latest右侧的链接进入,找到底部的Files,下载适合自己的安装文件,我装的是Python3.7.4. 下载好 ...

  6. python3列表生成式中的for循环与普通放在外面的for循环细微差异

    python3列表生成式中的for循环与普通放在外面的for循环细微差异 实例: 给定列表alist = [1,2,3,4,5,6,7],k=3 想要使用for循环达成输出[5,6,7,1,2,3,4 ...

  7. [转载] Python3.X 线程中信号量的使用方法示例

    参考链接: 示例说明Python2.x和Python3.x之间的重要区别 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界 ...

  8. python3.7.1中IDLE突然打不开;spyder3打不开解决方案

    python3.7.1中IDLE突然打不开:spyder3打不开解决方案 参考文章: (1)python3.7.1中IDLE突然打不开:spyder3打不开解决方案 (2)https://www.cn ...

  9. linux打开python3_号外:RIDE 可以在 linux+python3 的环境中运行啦!

    号外:RIDE 可以在 linux+python3 的环境中运行啦! RIDE1.7.4.1 版本,是一个 python 自动化测试中一个跨越式版本更新. RIDE 是什么 **RIDE 是什么?它是 ...

最新文章

  1. java vector search_java.util.Vector.retainAll()方法实例
  2. SpringBoot 框架中 使用Spring Aop 、创建注解、创建枚举类 使用过程记录
  3. Office协同办公:SkyDrive
  4. CSS自动换行,强迫不换行
  5. C语言实现:将一个字符串插入到另一个字符串的指定位置
  6. java线程的cancel_多线程-Cancel详解
  7. MySQL的一些基础操作
  8. Java包装类和基本数据类型的对照
  9. 关于细分到字段的权限系统_操作系统中的细分
  10. 计算机c语言模拟考试,国家计算机二级c语言考试模拟题
  11. 字符串算法-Rabin-Karp
  12. IEEE写作模板获取
  13. MAC编译OpenJDK8(含202-242)的Xcode版本问题
  14. LC-3 汇编语言 指令集
  15. [HYSYS学习]逻辑单元-循环器
  16. 如何做好一个APP开发项目?需要规避以下误区
  17. 南京:探索实施“电子围栏”管理新模式 缓解商圈周边道路交通拥堵
  18. 《伟大是熬出来的》冯仑与年轻人闲话人生之三
  19. DIY智能小车篇(一):结构模块
  20. JAVA培训多久可以找工作?

热门文章

  1. 2020年10月21日 星期三 工作日志
  2. Angular 指令ngTemplateOutlet的运行原理单步调试
  3. SAP Spartacus的url parameter
  4. SAP Cloud for Customer的inscreen_dataflow处理方式
  5. why we need getCoreClasses()
  6. Hybris PriceRow的存储定义
  7. SAP Cloud for Customer My settings按钮被disable的原因分析
  8. how to avoid transport error when cloning project in Eclipse
  9. Error dialog box generic entry point
  10. 关于SAP Cloud Platform ABAP环境费用的问题