1. 相关概念
  2. - 错误:程序运行之前的语法错误,如:关键字、缩进不齐、括号不成对。
  3. - 异常:在程序运行过程中出现的问题,如:除数为0、对象属性不存在等。
  4. 异常处理
  5. - 说明:异常处理可以理解为特殊的流程控制语句,可以提高代码的健壮性。
  6. - 语法:
  7. try:
  8. print('正常代码')
  9. # 3/0
  10. # print(a)
  11. print('正常结束')
  12. except Exception as e:
  13. # 此处捕获异常,然后做出异常的处理
  14. print('出现了异常', e)
  15. print('over')
  16. - 多个异常
  17. '''
  18. try:
  19. print('正常代码')
  20. # print(a)
  21. # 3/0
  22. d = {}
  23. print(d['age'])
  24. except NameError as e:
  25. print('NameError:', e)
  26. except ZeroDivisionError as e:
  27. print('ZeroDivisionError:', e)
  28. except Exception as e:
  29. print('Other:', e)
  30. '''
  31. try:
  32. # print(a)
  33. # 3/0
  34. d = {}
  35. print(d['age'])
  36. except (NameError, ZeroDivisionError) as e:
  37. # 将某些异常放在一起进行统一处理
  38. print(e)
  39. except:
  40. print('其他异常')
  41. print('OVER')
  42. - 完整结构
  43. try:
  44. print('正常执行')
  45. print(a)
  46. except Exception as e:
  47. # 出现异常时执行
  48. print('出现异常:', e)
  49. else:
  50. # 没有异常时执行
  51. print('正常结束')
  52. finally:
  53. # 无论有无异常都会执行
  54. print('最后执行')
  55. - 抛出异常
  56. try:
  57. print('正常执行')
  58. # 根据业务逻辑需要,手动抛出异常
  59. raise Exception('手动抛出的异常')
  60. print('正常结束')
  61. except Exception as e:
  62. print('异常', e)
  63. print('OVER')
  64. - 异常嵌套
  65. print('我要去上班,什么事也阻止不了上班的脚步')
  66. try:
  67. print('我准备骑电车去上班')
  68. raise Exception('不知道昨天晚上哪个缺德的家伙把我充电器弄掉了')
  69. print('骑电车提前到达公司')
  70. except Exception as e:
  71. print('异常:', e)
  72. try:
  73. print('我准备做公交上班')
  74. raise Exception('等了20分钟一直没有公交,果断放弃')
  75. print('做公交准时到达')
  76. except Exception as e:
  77. print('异常', e)
  78. print('我准备打车')
  79. print('打车还是快,一会就到公司')
  80. print('热情满满的开始一天的工作')
  81. - 自定义异常类
  82. # 自定义异常类
  83. class MyException(Exception):
  84. def __init__(self, msg):
  85. self.msg = msg
  86. def __str__(self):
  87. return self.msg
  88. # 异常处理函数
  89. def deal(self):
  90. print('特定的处理方案')
  91. try:
  92. print('正常执行')
  93. raise MyException('自定义异常')
  94. except MyException as e:
  95. print(e)
  96. # 处理异常
  97. e.deal()
  98. # 这种异常放在最后
  99. except Exception as e:
  100. print('Exception', e)
  101. print('OVER')
  102. - 特殊场景
  103. - 当进行文件操作时,无论过程中有误异常,最后一定要关闭文件。
  104. - 使用with语句,来保证文件的关闭,无论中间是否出现异常。
  105. - 示例:
  106. '''
  107. fp = open('00-text.txt', 'r')
  108. content = fp.read(1024)
  109. # ...
  110. # ...
  111. # 最后一定要关闭文件
  112. fp.close()
  113. '''
  114. with open('00-text.txt', 'r') as fp:
  115. content = fp.read(1024)
  116. # ...
  117. # ...
  118. # 不需要考虑文件的关闭问题,
  119. # 无论中间有无异常,都会确保文件的关闭

python学习总结----异常处理的更多相关文章

  1. 4月18日 python学习总结 异常处理、网络编程

    一. 异常 1.什么是异常 异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制 那么该错误就会产生一个异常抛出来,程序的运行也随之终止 2.一个异常分为三部分: 1.异常的追踪信息 2 ...

  2. Python学习之--异常处理

    Python中的Exceptions是所有异常的基类,内置的异常类都放在了exceptions模块中,通过dir()函数可以看到这些内置的类 通过raise 语句触发异常,如 >>> ...

  3. Python学习 :异常处理

    异常处理 什么是异常处理 - python解释器检测到错误,触发异常(也允许程序员自己触发了异常) - 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,只与异常处理有关) - 如果 ...

  4. Python学习之异常处理

    1.首先了解错误和异常的概念: 错误:代码运行前的代码错误或者是程序执行过程中的逻辑错误 1:语法错误:代码不符合解释器或者编译器语法(代码错误) 2:逻辑错误:不完整或者不合法输入或者计算出现问题( ...

  5. Python学习--12 异常处理、调试

    异常捕获 语法格式: try: pass except xxx as e: pass except xxx as e: pass ... else: pass finally: pass except ...

  6. Python学习笔记(异常处理)

    用户输入了一个不合规定的值,或者需要打开的文件不存在.这些情况被称作“异常”,一个好的程序需要能处理可能发生的异常,避免程序因此而中断. 例如我们去打开一个文件: f = file('non-exis ...

  7. python学习之----异常处理小示例

    网络是十分复杂的.网页数据格式不友好,网站服务器宕机,目标数据的标签找不到,都 是很麻烦的事情.网络数据采集最痛苦的遭遇之一,就是爬虫运行的时候你洗洗睡了,梦 想着明天一早数据就都会采集好放在数据库里 ...

  8. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  9. Python学习系列(九)(IO与异常处理)

    Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...

随机推荐

  1. 关闭Debut.Log

    unity5.3支持了运行时关闭产生的debug.log Debug.logger.logEnabled = false; 谢谢你们,让我能在晚上凝视夜空的时候,脑海中浮现出更广阔的世界.

  2. iOS实现电话状态监听 CoreTelephony

    在程序中如果需要监听电话状态,可以引入CoreTelephony框架,这个框架包含了电话相关的API,可以实现监测来电,查看运营商信息等功能.下面就是具体的实现监测来电的代码.一定要把center写成 ...

  3. Angularjs基础(七)

    AngularJS表单 AngularJS表单时输入控件的集合HTML控件 一下HTML input 元素被称为HTML 控件: input 元素 select元素 button元素 textarea ...

  4. jquery表单属性筛选元素

    $(":button") 选择所有按钮元素类型为按钮的元素. 等于$('input[type="button"]') $(":checkbox&quo ...

  5. LeetCode 简单 - 路径总和(112)

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22 ...

  6. Java中Lambda表达式的简单使用

    Lambda表达式是Java SE 8中一个重要的新特性.你可以把 Lambda表达式 理解为是一段可以传递的代码 (将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风格 ...

  7. dom4j支持Xpath的具体操作

    ***默认情况下,dom4j不支持xpath. 如果想要使用xpath,需要引入jaxen-1.1-beta-6.jar包. 在dom4j中提供了两个方法来支持xpath. ***selectNode ...

  8. iOS中出现"Check dependenciesWarning: The Copy Bundle Resources build phase contains this target's Info.plist file..."的解决办法A

    出现场景   项目中移除info.plist ,后来又重新拖拽回来,同时勾选了Copy items if needed 解决办法 1.删除(删除时选择Remove Reference) 2.重新添加i ...

  9. python 摘要算法

    一.概述: 摘要算法主要特征是加密过程不需要密钥,并且加密的数据无法解密,只有输入相同的明文数据经过相同的摘要算法才能得到相同的密文.摘要算法主要应用在“数字签名”领域.接下来会讲述RSA公司的MD5 ...

  10. apache使用.htaccess文件中RewriteRule重定向后,URL中的加号无法解析

    今天在使用.htaccess做伪静态的时候,发生一件怪事,URL里存在C++时会有问题,在处理C++这个词的时候,无论如何,$_GET都得不到++,只能得到C空格. 一开始我以为是没用urlencod ...