2011-06-23 6 views
1

重複の可能性:
when is it necessary to add an else clause to a try..except in Python?
Python try-elseは他の用途は何ですか:試した後に/ except節

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節の使用量は、どのようなものですし、実行されるのだろうか?

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 

答えて

3

除いて... else文はこのような何かを意味...しようとすると、コントロールがオフに流れたとき場合は、オプションのelse節が実行され

をtry節の終了7.2 else節の例外は、前述のexcept節では処理されません。

現在、例外、またはreturn、continue、breakステートメントの実行を除いて、制御は ``最後から流れます ''。

のでelse句がtryは例外を発生させないいないと制御フロー計算書を経由してブロックを終了していないときに実行されます。

+2

tryブロックに戻り値がある場合、elseも実行されません。 –

+0

ここでtry-elseを使用すると便利なときは非常に良い説明があります:http://stackoverflow.com/a/855764/621591 –