zoukankan      html  css  js  c++  java
  • 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  



  • 相关阅读:
    杨辉三角
    100以内的素数
    九九
    MyDate
    计算器
    100以内素数
    杨辉三角形
    九九乘法表
    窗口关闭事件
    计算器界面
  • 原文地址:https://www.cnblogs.com/zknublx/p/7411731.html
Copyright © 2011-2022 走看看