每个人都有错,但只有愚者才会执迷不悟。——西塞罗
古罗马著名政治家、演说家、雄辩家、法学家和哲学家(哇,好多头衔)西塞罗曾经说过一句话:“每个人都有错,但只有愚者才会执迷不悟。”在编码过程中,我们能碰到不少错误,如果我们做一个“智者”,不对bugs执迷不悟,就很难有提升(好吧,我又曲解了大神的名言)。其实,我主要想说的是要正确处理我们在Python编码过程中遇到的问题。
现实世界中充满了不完美,意外和异常会在不经意间发生。作为对现实世界抽象的程序来说,意外和异常也是不可避免的,如果不能正确对待并加以处理,这些异常会转变成错误……如此周而复始,错误就会像雪球一样越滚越大了……试想,程序使用过程中,出现一大堆Trackback,会是一种什么样的体验?肯定非常糟糕……
今天,我们对Python异常处理的使用做一个总结,避免我们在使用过程中不小心踩到“坑”。
异常处理用法
作为编程语言的Python提供了异常处理机制。正确处理异常可以提高程序的健壮性,能使得程序更好的面向使用者。Python主要使用try……except……语句来处理异常。
【try—except语句用法】
try:
<statements> ----> 首先执行这一条语句
except <name1>:
<statements> ----> try中发生name1异常时执行语句
except <name2, name3>:
<statements> ----> try中发生name2,name3中的某一个异常时执行的语句
except <name4> as <data>:
<statements> ----> try中发生name4异常时执行语句,并获取对应的异常实例
except:
<statements> ----> 其它异常发生时执行的语句
else:
<statements> ----> 没有异常发生时执行的语句
finally:
<statements> ----> 不管有没有异常都要执行的语句
【使用形式】
当然,不是每一个except都要的,可以根据程序需要进行组合。如try-excpet(一个或者多个)、try-except(一个或多个)-else、try-finally、try-except(一个或多个)-else-finally……
【实例演示】
下面我们用异常处理打开一个文件为例进行说明
演示代码及执行结果
异常处理需要遵循的原则
【不要在try中加入过多代码】try中加入过多语句不便于掌握异常发生的具体位置。这里就不举例了,都能理解。
【except中最好定位具体异常】最好具体说明是什么异常,如果没有说明,最好使用raise语句将异常抛给上层传递。
【捕获异常要先捕获父类异常】父类异常不能精确定位异常信息,子类异常前面声明可能导致后面声明的父类异常覆盖子类异常。
异常处理代码演示
【异常发生时提示信息可读性要好】如果程序中大量出现Trackback,用户体验就会变差!
常见异常类有以下几种
常见异常类汇总
小结
正确使用异常好处多多哦,异常使用中还有哪些原则,欢迎大家留言讨论,这里只是对使用注意原则进行了简单处理。如何高效使用还得通过日常项目、案例练手熟悉。感兴趣收藏以备后用,转载请注明出处(百家号:Python高手养成)