Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,而且都在exceptions模块中定义。Python自动将所有异常名称放在内建命名空间中,所以程序不必导入exceptions模块即可使用异常。Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。

注意:虽然大多数错误会导致异常,但一个异常不一定代表错误,有时候它们只是一个警告,有时候它们可能是一个终止信号,比如退出循环等。

一.与python异常相关的关键字

raise:手动抛出/引发异常:raise [exception[,data]

try/except:捕获异常并处理

pass:忽略异常

as:定义异常实例(except IOError as e)

finally:无论是否出现异常,都执行的代码]

else:如果try中的语句没有引发异常,则执行else中的语句

except Exception as error:

二.python中的异常类型

1.StandardError类:如果程序上出现逻辑错误, 将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOEroor, EOFError, ImportError等类,不需要导入exception模块。

StopIteration类:判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。

GeneratorExit类:是由Generator函数引发的异常,当调用close()时引发该异常。

Warning类:表示程序中的代码引起的警告。

三.基本方式:

1.try:

语句1

except  [exception1(,exception2...),[data…]]:

语句2

else:

语句3

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

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

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

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

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

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

import traceback

try:

1/0

except Exception as err:

print(err)

try:

f = open("file.txt","r")

except IOError as e:

print(e)

try:

f = open("file.txt","r")

except Exception as e:

print(e)

最后两个的输出是一模一样的---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.try:

语句1

finally:

语句2

该语句的执行规则是:

·   执行try下的代码。

·   如果发生异常,在该异常传递到下一级try时,执行finally中的代码。

·   如果没有发生异常,则执行finally中的代码。

第二种try语法在无论有没有发生异常都要执行代码的情况下是很有用的。例如我们在python中打开一个文件进行读写操作,我在操作过程中不管是否出现异常,最终都是要把该文件关闭的。这两种形式相互冲突,使用了一种就不允许使用另一种,而功能又各异

所以,一般情况下,finally里面执行的都是一些清理工作,比如:关闭文件描述符,释放锁等

注意,finally中,如果出现异常,外部如果没有相应的捕获机制,该异常会层层抛出,直到最顶端,然后解释器停止。一般在外层再加一次try except异常捕获

三.手动使用raise引发异常

1.raise [exception[,data]]

2.在Python中,要想引发异常,最简单的形式就是输入关键字raise,后跟要引发的异常的名称。异常名称标识出具体的类:Python异常是那些类的对象。执行raise语句时,Python会创建指定的异常类的一个对象。raise语句还可指定对异常对象进行初始化的参数。为此,请在异常类的名称后添加一个逗号以及指定的参数(或者由参数构成的一个元组)。

3.实例:

try:

print("开始测试")

raise IOError

except IOError:

print("定义好的错误")

except:

print("别的错误")

在python中、如果异常并未被处理或捕捉_python异常处理(一)相关推荐

  1. 在python中、如果异常并未被处理或捕捉_Python异常处理总结

    本文较为详细的罗列了Python常见的异常处理,供大家参考,具体如下: 1. 抛出异常和自定义异常 Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常.如果 ...

  2. Python中获取异常(try Exception)信息

    Python中获取异常(try Exception)信息 参考文章: (1)Python中获取异常(try Exception)信息 (2)https://www.cnblogs.com/hixiao ...

  3. Python基础之:Python中的异常和错误

    文章目录 简介 Python中的内置异常类 语法错误 异常 异常处理 抛出异常 异常链 自定义异常 finally 简介 和其他的语言一样,Python中也有异常和错误.在 Python 中,所有异常 ...

  4. python读取json数据格式问题_浅谈Python中的异常和JSON读写数据的实现

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  5. python 忽略 异常_如何忽略Python中的异常?

    python 忽略 异常 什么是例外? (What is an Exception?) An exception is an event, which occurs during the execut ...

  6. 【华为云技术分享】Python 中的异常和错误

    [摘要] 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常和错误 第一:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测, ...

  7. Python中的异常、try、except、finally、raise语法以及示例

    0. 引言 在编写Python程序时,有时我们不确定一段语句是否可以正确执行,因为如果发生错误,那么程序就会终止,这样对完整代码实现很不友好.我们希望可以程序可以根据不同的错误(异常)从而执行不同的语 ...

  8. python中什么是异常_一文教你读懂 Python 中的异常信息

    在写 Python 代码的时候,当代码中出现错误,会在输出的时候打印 Traceback  错误信息,很多初学者看到那一堆错误信息,往往都会处于懵逼状态,脑中总会冒出一句,这都是些啥玩意.如果你是第一 ...

  9. python中的异常分类_列举 5 个 Python 中的异常类型以及其含义【面试题详解】

    今天爱分享给大家带来列举 5 个 Python 中的异常类型以及其含义[面试题详解],希望能够帮助到大家. BaseException +-- SystemExit +-- KeyboardInter ...

最新文章

  1. java程序运行结果题_(Java程序设计)试题
  2. 阿里 双11 同款,流量防卫兵 Sentinel go 源码解读
  3. android菜鸟学习笔记27----Fragment的简单使用
  4. 螺旋方阵(Leetcode第59题)
  5. 关于CleanMyMac常见问题与解答
  6. 怎么在c语言里输入数组元素,如何在不输入n的情况下输入数组中的元素? (C )...
  7. 【洛谷 P4291】 [HAOI2008]排名系统(Splay,Trie)
  8. 网站跨域访问解决方法
  9. 沪牌每月价格预测模型
  10. 计算机学生如何规划好大学四年的学习?
  11. puppet自动化部署
  12. 利用代码快速批量取消微博的关注
  13. STM32MP157 Linux系统移植开发篇19:Linux内核Wi-Fi驱动移植
  14. ijk基于exo_基于 ExoPlayer 的 ExoVideoView
  15. android vrs技术,步步高 vivo V1/Y1 智能手机音质测评报告 VRS[vivo signal
  16. android手机刷ios6,2017安卓手机刷机方法
  17. 一款完整的手机结构设计过程
  18. IPEndPoint 和 EndPoint
  19. 欢迎光临阿里云栖大会SAP展区(C区301)!
  20. 写给大忙人的建议:如何优雅地速成代码?(教你如何在忙碌中学习新知识)

热门文章

  1. 深度学习核心技术精讲100篇(三十九)-医疗健康领域的短文本理解
  2. 探索推荐引擎内部的秘密
  3. KMeans和KMedoid 的Matlab实现
  4. 华为云IoT提出泛在新联接,让万物皆可联
  5. numpy.mod详解
  6. 酷狗音乐的大数据实践
  7. Java内存模型深度解析:volatile--转
  8. 简单的session共享的封装
  9. Understanding Spring Web Application Architecture: The Classic Way--转载
  10. Android混淆详解