![Python从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/265/27563265/b_27563265.jpg)
上QQ阅读APP看书,第一时间看更新
6.8 程序的异常处理
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P103_43940.jpg?sign=1739280673-2i2SkvXRD0A3Dojyh1gdO79ZZnz75gZt-0-a61a0ae97da3b6a42c94c323aa2d3e4e)
程序的异常处理的写法和处理方式有以下三种。
(1)最简单最直接的处理方式:假定在写代码的时候,有时怕程序会出问题,就会在可能出问题的地方用上try exception来捕获程序出现的错误。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P103_78944.jpg?sign=1739280673-zvQasGXTXXknbLiY76cS0fuFzTrRGkft-0-4ea4430b908a6742e4b1db716ca6c82f)
(2)在其中加个判断:在写一段程序的时候,想如果有异常就输出异常,如果没异常就继续执行下面的语句该怎么做呢?就要用到try exception else。例如:
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P103_78945.jpg?sign=1739280673-w7pozkndfin5J26vU3nlW3TJ4YHuGCvs-0-16fb2669201209fa9b9508c10df24fcf)
输出的结果是success,因为上面的a = 1/2没有报错,它会执行else后面的语句,就像Python控制语句的if…else。如果上面的程序有异常就执行except后面的语句,输出异常;如果没有异常的话,就会执行else后面的语句。
(3)不管有没有异常都要执行:这个情况主要是如果你要操作什么东西,例如文件或者网络等,不管它是否发生异常最后都要关闭资源,例如关闭文件等。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P104_78947.jpg?sign=1739280673-WNjq4jOGcgWac3LVLeEDIIvOKnrN2Tsj-0-22f72e4de6676046f206ad0ad405b8c5)
上面假设在打开文件或者写内容的时候出错的话,会执行print e,接着会执行f.close()关闭文件,其实不一定是有异常才会执行finally后面的方法,就算语句没有出现异常的话,也会执行finally后面的语句。