一般情况下,程序无法处理正常的逻辑执行过程时会发生异常。为了处理程序在运行过程中的异常和错误,python 同样定义了很多的标准异常以及异常处理机制用来处理程序运行过程中出现的异常。
在 python 语言中,处理异常的关键字主要有:try、except、else、finally 以及 raise 关键字。try 关键字:主要是检测异常,如果发生异常情况时将程序处理交给 except 关键字。
except 关键字:获取异常并进行处理。
else 关键字:在执行完 try 关键字域中的代码块时,如果没有发现异常则接着执行 else 关键字代码块中的内容。
finally 关键字:无论是否发生异常都进入该关键字的域进行处理,通常主要处理资源关闭、对象内存释放等必须的操作。
raise 关键字:用于抛出自定义的异常信息使程序不能直接向下执行。异常关键字通常都有多种方式进行组合之后使用,不同的组合更是能完成不同的异常处理场景。合理的异常处理不仅能完善程序执行过程中的逻辑操作,也能提升程序执行的性能。
try...except...else 组合异常处理
1 try:
2 print "正常处理逻辑"
3 except Exception,e:
4 print "异常处理逻辑"
5 else:
6 print "执行完成,没有发现异常"
1 try:
2 print "正常处理逻辑"
3 except:
4 print "异常处理逻辑"
5 else:
6 print "执行完成,没有发现异常"
这个组合在处理异常时,第一种处理方式 except 关键字后面跟上了具体的异常对象、第二种则没有,如果按照第二种情况不添加任何的异常对象则表示捕获处理所有的异常,缺点是不能输出具体的异常信息。
1 try:
2 print "正常处理逻辑"
3 except WindowsError,e1:
4 print "异常信息:",e1.message
5 print "异常逻辑处理"
6 except ImportError,e2:
7 print "异常信息:",e2.message
8 print "异常逻辑处理"
这种是多异常处理组合,通过将多个 except 关键字连接的形式捕获不同的异常并进行异常处理的程序逻辑。
try...finally 组合异常处理
1 try:
2 print "正常逻辑处理"
3 finally:
4 print "释放资源"
执行正常的程序逻辑,无论 try 的代码块内是否检测到异常信息都要执行 finally 代码块里面的程序逻辑。
try...except...finally 组合异常处理
1 try:
2 print "正常逻辑处理"
3 try:
4 print "正常逻辑处理"
5 finally:
6 print "强制执行程序逻辑"
7 except Exception,e:
8 print "发生异常:",e.message
9 print "异常处理逻辑"
在很多的编程语言中也提供了可以自定义异常的操作,python 也有着自己可以自定义异常并且使用自定义的方式。使用的思维方式也是大致相同,都是通过继承标准的异常之后封装成自己的异常对象然后在合适的处理逻辑中将自定义的异常抛出。
定义自定义异常
1class CustomException(Exception):
2 def __init__(self,err):
3 self.args = err
使用自定义异常
1 a = int(raw_input())
2 if a < 0:
3 raise CustomException("类型输入错误")
4 else:
5 print "正常逻辑"
更多精彩前往微信公众号【Python 集中营】,专注后端编程实战,原创文章每天更新!
相关推荐
大话Java:从零基础到数据库、Web开发以漫画的形式,由浅入深、循序渐进地介绍Java编程的常用技术和方法,内容涵盖了Java基本语法结构、面向对象特征、集合框架体系、异常处理、GUI编程、MySQL数据库、JDBC数据库...
用户可以利用Tableau的数据准备功能清洗数据,处理缺失值、异常值,甚至进行简单的计算和转换。 在数据可视化阶段,Tableau的工作表允许用户将字段拖放到行、列、颜色、大小、标记等区域,快速创建图表。例如,将...
2. **多行字符串**:Python中,用三个单引号或双引号括起的字符串可以跨越多行,这在打印长文本或代码块时非常有用。在打印皮卡丘的练习中,多行字符串用于存储整个字符画,然后一次性打印出来。 3. **转义字符**:...
大话存储:存储系统底层架构原理极限剖析(终极版)第3部分 大话存储:存储系统底层架构原理极限剖析(终极版)第3部分大话存储:存储系统底层架构原理极限剖析(终极版)第3部分
大话Python|基础语法(上)
大话存储:存储系统底层架构原理极限剖析(终极版)_张冬2015.01_P989
- **大言不惭**:形容说大话。 - **明目张胆**:形容公然妄为。 - **明哲保身**:形容逃避责任。 - **忘乎所以**:形容过于兴奋。 - **高谈阔论**:形容不切实际的谈论。 - **始作俑者**:比喻开创恶劣风气。 ...
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向...
处理器是现代信息技术的核心,它如同人类的大脑,负责执行指令和处理数据。在信息产业的滚滚洪流中,处理器的重要性不言而喻,倘若没有处理器,信息产业就如同建立在沙堆上的城堡,脆弱而不堪一击。在《大话处理器》...
本文用比喻的方法大话python语言 通俗易懂 很容易上手,把深奥的文字变成形象化 的语言Python语言是什么? 想象你有一个非常聪明的机器人朋友,名字叫Python。Python能听懂你用简单的英语(编程语言)告诉它的指令,...
共5个压缩包
大话存储:存储系统底层架构原理极限剖析(终极版)第4部分 大话存储:存储系统底层架构原理极限剖析(终极版)第4部分
总之,《大话存储》一书深入浅出地讲解了存储系统底层架构的各个方面,从基础概念到前沿技术,涵盖了存储领域的广泛知识。无论是初学者还是资深IT从业者,都能从中获得宝贵的洞见,提升对存储系统的理解和应用能力。
[大话存储:网[大话存储:网络存储系统原理精解与最佳实践].张冬.扫描版络存储系统原理精解与最佳实践].张冬.扫描版
《大话IT》节目介绍:《大话IT》是由各IT媒体中一群喜欢音频的编辑和记者自发性建立的栏目,针对当前最in、最热点的IT事件和IT技术进行播报和观点性分析。所录制内容可在保留作者和出处的情况下自由传播。 如今的...
大话存储:存储系统底层架构原理极限剖析(终极版)第5部分 大话存储:存储系统底层架构原理极限剖析(终极版)第5部分
php版本用自己现在用的语言重新写一遍,文中的代码均可以在终端内部执行 网页版本: : 相关资源: 目录 执照 MIT许可证。