2017-04-20 7 views
0

セイをつかまえました。私はすべての単一のサブブロックで手動で呼び出す必要がありますかありに似文を持つ方法で構築ください:あなたができるは/私は例外文のブロックを持っている

... 
except err10: 
    #process error 
"if any of these exception were raised": 
    sys.exit(1) 
+1

たび 'except'をブロックが入力されると、各エラーで何をする必要があるのか​​を実行した後で、 'SystemExit'を呼び出すことができます。あなたの 'except'ブロックのどれもエラーを実際に' raise'していない場合は、最初に変数を設定してから 'try'ブロックでその値をtrueにしてから、その変数が任意のexcpetionを実行した後falseであれば' SystemExit '最後に。コード例をご希望の場合はLMKをご利用ください。 – JacobIRR

答えて

4

ことの一つは、次のとおりです。

flag = False 

try: 
    expression 
    flag = True 
except err1: 
    #process error 
    ... 
    ... 
except err10: 
    #process error 
if not flag: 
    sys.exit(1) #exit program 

の場合フラグがFalseの場合は、ループがtryを通過しなかったことを意味し、エラーが発生しました。

+1

パーフェクト。ありがとう! – user3776749

1
raised = True 
try: 
    expression 
except err1: 
    # process error 
    raise 

... 

except err10: 
    # process error 
    raise 
else: 
    # if no error was raised 
    raised = False 
finally: 
    if raised: 
     raise SystemExit 
3

Pythonには、例外が発生しない場合に実行されるオプションのelseブロックがあります。あなたは、あなたのコードのためにフラグを設定するためにこれを使用してようtry/exceptブロックからコードを出ることがあります。

ここ
is_exception = True 

try: 
    expression 
except err1: 
    # ... something 
except err10: 
    # ... something else 
else: 
    # This will be executed if there is no exception 
    is_exception = False 

if is_exception: 
    sys.exit(1) 
1

が、私は私のコメントで話していたものです。

isok = False 
try: 
    #try to do something 
    isok = True 
except err1: 
    #do something besides raising an exception 
except err5: 
    #do something besides raising an exception 
if not isok: 
    raise SystemExit 
関連する問題