python学习-python2中try

发布时间:2019-09-19 08:05:23编辑:auto阅读(1649)

    一、try...finally

    高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外.


    当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。

    如下所示:

    try:    
        print 'try...'
        r = 10 / 0
    print 'result:', rexcept ZeroDivisionError, e:    
       print 'except:', e
    finally:    
      print 'finally...'
    print 'END'

    二、with....as

    这个语法是用来代替传统的try...finally语法的。 

    with EXPRESSION [ as VARIABLE] WITH-BLOCK 

    基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。

    紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。

    file = open("/tmp/foo.txt")  
    try:  
        data = file.read()  
    finally:  
        file.close()

    而使用with as写法如下:

    with open("/tmp/foo.txt") as file:  
        data = file.read()


关键字