else的用法是什么:在try / except子句之后

时间:2011-06-23 07:31:43

标签: python

  

可能重复:
  when is it necessary to add an else clause to a try..except in Python?
  Python try-else

for arg in sys.argv[1:]:
    try:
        f = open(arg, 'r')
    except IOError:
        print 'cannot open', arg
    else:
        print arg, 'has', len(f.readlines()), 'lines'
        f.close()

这个else子句的用法是什么,什么时候执行?

2 个答案:

答案 0 :(得分:3)

try ... except ... else语句意思是这样的:

try:
    # execute some code
except:
    # if code raises an error, execute this code
else:
    # if the "try" code did not raise an error, execute this code

答案 1 :(得分:3)

来自Python documentation

  

如果控制流出try子句的末尾,则执行可选的else子句.7.2 else子句中的异常不由前面的except子句处理。

     

目前,除了异常或执行return,continue或break语句之外,控制``从末尾流出'。

因此else子句在try没有引发异常并且不通过控制流语句退出块时执行。