在python中、如果异常并未被处理或捕捉_python异常处理(一)
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异常处理(一)相关推荐
- 在python中、如果异常并未被处理或捕捉_Python异常处理总结
本文较为详细的罗列了Python常见的异常处理,供大家参考,具体如下: 1. 抛出异常和自定义异常 Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常.如果 ...
- Python中获取异常(try Exception)信息
Python中获取异常(try Exception)信息 参考文章: (1)Python中获取异常(try Exception)信息 (2)https://www.cnblogs.com/hixiao ...
- Python基础之:Python中的异常和错误
文章目录 简介 Python中的内置异常类 语法错误 异常 异常处理 抛出异常 异常链 自定义异常 finally 简介 和其他的语言一样,Python中也有异常和错误.在 Python 中,所有异常 ...
- python读取json数据格式问题_浅谈Python中的异常和JSON读写数据的实现
异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...
- python 忽略 异常_如何忽略Python中的异常?
python 忽略 异常 什么是例外? (What is an Exception?) An exception is an event, which occurs during the execut ...
- 【华为云技术分享】Python 中的异常和错误
[摘要] 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常和错误 第一:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测, ...
- Python中的异常、try、except、finally、raise语法以及示例
0. 引言 在编写Python程序时,有时我们不确定一段语句是否可以正确执行,因为如果发生错误,那么程序就会终止,这样对完整代码实现很不友好.我们希望可以程序可以根据不同的错误(异常)从而执行不同的语 ...
- python中什么是异常_一文教你读懂 Python 中的异常信息
在写 Python 代码的时候,当代码中出现错误,会在输出的时候打印 Traceback 错误信息,很多初学者看到那一堆错误信息,往往都会处于懵逼状态,脑中总会冒出一句,这都是些啥玩意.如果你是第一 ...
- python中的异常分类_列举 5 个 Python 中的异常类型以及其含义【面试题详解】
今天爱分享给大家带来列举 5 个 Python 中的异常类型以及其含义[面试题详解],希望能够帮助到大家. BaseException +-- SystemExit +-- KeyboardInter ...
最新文章
- java程序运行结果题_(Java程序设计)试题
- 阿里 双11 同款,流量防卫兵 Sentinel go 源码解读
- android菜鸟学习笔记27----Fragment的简单使用
- 螺旋方阵(Leetcode第59题)
- 关于CleanMyMac常见问题与解答
- 怎么在c语言里输入数组元素,如何在不输入n的情况下输入数组中的元素? (C )...
- 【洛谷 P4291】 [HAOI2008]排名系统(Splay,Trie)
- 网站跨域访问解决方法
- 沪牌每月价格预测模型
- 计算机学生如何规划好大学四年的学习?
- puppet自动化部署
- 利用代码快速批量取消微博的关注
- STM32MP157 Linux系统移植开发篇19:Linux内核Wi-Fi驱动移植
- ijk基于exo_基于 ExoPlayer 的 ExoVideoView
- android vrs技术,步步高 vivo V1/Y1 智能手机音质测评报告 VRS[vivo signal
- android手机刷ios6,2017安卓手机刷机方法
- 一款完整的手机结构设计过程
- IPEndPoint 和 EndPoint
- 欢迎光临阿里云栖大会SAP展区(C区301)!
- 写给大忙人的建议:如何优雅地速成代码?(教你如何在忙碌中学习新知识)