39

私はこのtry/exceptコードを持っています:

document = raw_input ('Your document name is ')

try:
    with open(document, 'r') as a:
        for element in a:
           print element

except:
    print document, 'does not exist'

「[ファイル名] が存在しません」と出力した後、プログラムを終了するにはどうすればよいですか? break明らかにpass機能しません。クラッシュエラーが発生したくないのでsys.exit、オプションではありません。

この部分は無視してくださいtry。これは単なるダミーです。

4

6 に答える 6

44

sys.exit を使用します。

import sys

try:
    # do something
except Exception, e:
    print >> sys.stderr, "does not exist"
    print >> sys.stderr, "Exception: %s" % str(e)
    sys.exit(1)

後でデバッグできるように、発生した例外を出力することをお勧めします。

モジュールでスタックトレースを出力することもできtracebackます。

sys.exit で返す int は、プログラムのリターン コードになることに注意してください。プログラムが返した終了コードを確認するには (これにより、何が発生し、自動化できるかについての情報が得られます)、次のように実行できます。

echo $?
于 2012-04-15T22:27:04.243 に答える
11

使用する

sys.exit(1)

これはクラッシュ エラーではなく、プログラムを終了するための完全に正常な方法です。終了コード 1 は、何かがうまくいかなかったことを意味する規則です (実行が成功した場合は 0 を返します)。

于 2012-04-15T22:26:41.107 に答える
8

コードを関数に入れて return を発行することもできます。スクリプトから呼び出すことができるメインと呼ぶことができます。

def main():
    document = raw_input ('Your document name is ')

    try:
        with open(document, 'r') as a:
            for element in a:
               print element

    except:
        print document, 'does not exist'
        return

if __name__ == "__main__":
    main()
于 2012-04-15T22:30:59.003 に答える