个别状况下,程序无奈解决失常的逻辑执行过程时会产生异样。为了处理程序在运行过程中的异样和谬误,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 集中营】,专一后端编程实战,原创文章每天更新!