15、Python之异常处理
异常处理
1、 异常处理是所有语言都不可缺少的部分,我们在编写代码的时候,有时候会预期到某段代码可能会发生错误,如果错误发生了,我们通过异常捕获,来对发生异常的代码进行后续处理,比如有一段连接数据库的代码,这里有一个明显可能发生的异常就是,数据库连接失败,对于我们的程序而言,如果数据库连接失败了,后续的业务场景就没法继续了,因此我会抓住这个异常,然后来开始我们的planB操作。
python中一个完整的异常结构为:
try: print("可能发生异常的程序") except (IOError,IndexError) as e: print("发生异常后进行的操作") except: print("所有异常都没有抓住的情况下") else: print("没有发生异常继续执行") finally: print("不管异是否发生都需要执行,进行收尾工作")
值得要注意的是finally,这里面的代码不管异常是否存在都会执行,其原因在于,有些程序不管异常是否发生都需要做一些收尾工作,比如数据库连接,如果异常发生了,后续代码不执行,那么数据库的连接就没有关闭。换句话说,finally的作用就是在异常发生之后,程序中断之前,让我们做一些收尾工作。
2、写一个自己的异常
只要继承Exception的类即可。
1 '''我自己的异常''' 2 class MyException(Exception,object): 3 def __init__(self,name): 4 self.name = name 5 def sayHi(self): 6 print("异常发生之后的处理") 7 8 '''捕获我自己的异常''' 9 try: 10 raise MyException("我的异常") 11 except MyException as e: 12 e.sayHi()