第三章:异常处理

Python代码出问题时,解释器会显示一个traceback,后面跟着一个错误消息;Python通过traceback来显示运行时发生了牟总意外情况,运行时的错误称之为“异常”(exception)。

Python允许在异常发生时捕获异常,有机会从错误中恢复;若当异常出现时将其忽略,则会导致程序崩溃。

 try/except 处理机制:

1. try:

  code......

 

2. except ValueError:

  code......

 3. else: #可选

  code......

  4. other code....

 

1)两种结构,try/except/else 与 try/except,第一种结构是在第二种结构基础上增加了else块;

 2)先讲第一种结构的代码块执行逻辑:

先执行1部分代码;若1部分代码产生了与2的ValueError一致的异常,则终止1部分的执行,转而执行2部分的代码;

若执行1部分代码,没有产生异常,则执行完1部分代码,跳过2,执行3 部分代码;

若执行1部分代码产生了与2的ValueError不一致的异常,则程序崩溃;

程序不管执行1-->2,还是1-->3,4部分代码都可以顺序执行;

 3)try/except 与 try/except/else的差异性:

从上面讲解的代码执行逻辑,2 / 3 部分的代码在执行上是互斥的,即执行2就不会执行3,不执行2,才能执行3;若将3部分代码与4部分代码合并,则无论2部分代码是否执行,都会执行3;

 4)except不唯一,即一个try后面可以挂多个except,主要用于一段代码可能产生多种异常,请注意,是多种,不是多个。

 try/except 相对于if/else的优势:

对于程序设计,代码的可靠性与健壮性,是工程上必须要考虑的;若不考虑异常,python代码在执行时,经常出现崩溃,肯定不是一个合适的工程;若将所有可能面临的异常操作在代码设计时予以考虑,则异常的复杂性可能会比代码本身功能设计更高,代码之美荡然无存,可阅读性与可维护性也会大打折扣;若采用try/except,则coder的注意力可以集中在本该完成的功能设计上;设计完成的代码的美感、可维护性等方面都有明显优势。

 5) finally:

对于try/except 处理机制中,无论是否出现异常,都必须要做的一些工作,应该放在finally 语段中,确保不管按照哪种处理逻辑,都不会引起不可预知的问题。

posted @ 2022-10-24 17:20  青萍微澜  阅读(39)  评论(0)    收藏  举报