• Python异常处理try...except...finally raise assert


    异常处理:
    try ...except  try代码块放置容易发生异常的语句:except代码块放置处理异常的语句
    try ...except...finally finally代码快是任何时候都会执行的;通常用于关闭系统的资源

    [python] view plain copy
     
    1. try:  
    2.     f = open('db100.txt','r')  
    3.     try:  
    4.         a = f.write('aa')  
    5.         print a   
    6.     except:  
    7.         print 'write error'  
    8.     finally:  
    9.         f.close()  
    10.         print 'close file'  
    11. except:  
    12.     print 'open error'  
    13. 输出:  
    14. write error  
    15. close file  





    raise 抛出异常;


    [python] view plain copy
     
    1. def reporterror(x):  
    2.     if x == None:  
    3.         raise NameError  
    4.     print x   
    5.   
    6.   
    7. try:  
    8.     reporterror(None)  
    9.   
    10.   
    11. except NameError:  
    12.     print 'x == None'  
    13. #输出:  
    14. x == None  





    自定义异常:
    必须继承于Exception类
    类名以Error结尾
    自定义异常使用raise语句引发,而且只能通过手工引发:
    Python pass 语句
    Python pass是空语句,是为了保持程序结构的完整性。

    pass 不做任何事情,一般用做占位语句。

    [python] view plain copy
     
    1. class MyError(Exception):    
    2.     pass  
    3.   
    4. def reporterror(x):  
    5.     if x == None:  
    6.         raise MyError()  
    7.     print x   
    8.      
    9. try:  
    10.     reporterror(None)  
    11.   
    12.   
    13. except MyError,error:  
    14.     print 'x == None'  
    15. #输出:  
    16. x == None  
    17. --------------------------------------  



    assert:语句用于测试某个条件表达式为真,即认为测的表达式永远为真,如果断言失败,会引发AssertionError异常

    [python] view plain copy
     
    1. str = 'hello'  
    2. try:  
    3.     #x = 10/0  
    4.     assert len(str) == 3  
    5. except AssertionError,x:  
    6.     print 'assert error',x  
    7. 输出:  
    8. assert error  

    异常信息:

    str = 'hello'

    [python] view plain copy
     
    1. try:  
    2.     x = 10/0  
    3.     assert len(str) == 3  
    4. except AssertionError,x:  
    5.     print 'assert error',x  
    6. except Exception ,ex:  
    7.     print ex  
    8. 输出:  
    9. integer division or modulo by zero  



  • 相关阅读:
    大约PCA算法学习总结
    内部硬盘的硬件结构和工作原理进行了详细解释
    DWZ使用注意事项
    cocos2d-x 在XML分析和数据存储
    HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth完全详细的说明
    hdu 1114 Piggy-Bank
    getResources()方法
    人机博弈-吃跳棋游戏(三)代移动
    Oracle 11g client安装和配置。
    的微信公众号开发 图灵机器人接口允许调用自己的微通道成为一个智能机器人
  • 原文地址:https://www.cnblogs.com/zknublx/p/7411731.html
Copyright © 2020-2023  润新知