try/exceptでプログラムを終了させるには?
こんな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` はオプションではありません。
トライの部分は無視してください。
27
3
sys.exitを使用します。
発生したExceptionを出力しておくと、その後のデバッグに便利です。
また、
traceback
モジュールを使用すると、スタックトレースを表示することができます。sys.exitで返すintは、プログラムのリターンコードになることに注意してください。あなたのプログラムがどんな終了コードを返したかを見るには(何が起こったかについての情報を得ることができ、自動化することができます)、次のようにするとよいでしょう。
使用方法
はクラッシュエラーではなく、プログラムを終了するための完全に正常な方法です。終了コード1というのは、何か問題があったことを意味する慣習です(正常に実行された場合は0を返します)。
また、コードを関数に入れ、リターンを発行することもできます。スクリプトから呼び出すことができるmainと呼ぶこともできます。