异常编码细节

一。格式:

      

        1.  代码执行到try,会做标记,在statements里抛异常时会返回到try首行去匹配except,匹配成功则执行except下的代码块,并接着处理后面的代码,跳开else,最后执行finally里的语句。

             匹配不成功则调用系统的默认异常处理程序,标准错误输出,终止程序的运行。

        2. 若statements里没有报异常,执行else里的语句,并最后执行finally里语句

        3. else和finally是可选的,except可以有0个或多个,至少有一个except,才会有else

        4. else只有在statements没有异常才会执行,不过任何情况下,finally都会执行

二。 except说明:

        

       

       

三。raise语句:

     1. 异常均是类的实例

     2. raise是显式的触发异常的方式

     3. raise 后既可以跟class,也可以跟class的实例,实例及class可以在之前创建也可以在raise里自带出来

        

    4.利用raise传递异常:

      

      5. 异常链:raise from

       ......

 四。 assert:

        用来收集用户定义的约束条件,而不是用来捕捉内在的程序设计错误

        。。。。。

五。 with/as 替代try/finally:

       

       

       

       

原文地址:https://www.cnblogs.com/derekchen/p/5579194.html