2016-07-21 7 views
-4
try: 
x="blaabla" 
y="nnlfa" 
if x!=y: 
     sys.exit() 
    else: 
     print("Error!") 
except Exception: 
    print(Exception) 

私はなぜそれがエラーを投げているのか尋ねていません。私はそれがexceptions.SystemExitを発生させることを知っている。退室する別の方法があるかどうか疑問に思っていましたか?Pythonでsys.exit()の代替手段がありますか?

+5

'sys.exit'を使用すると何が問題になりますか?なぜあなたに別の解決策が必要なのかわからない場合、私たちはあなたのためにうまくいくものを提案することはできません。 –

+1

私は正当な質問である票を理解できません。オブジェクトの削除処理を避けたい場合は、 'os._exit'を使うことができます。 – tdelaney

+0

hello @Morgan Thrapp.come on man.thats not working。これは私が別の解決策が必要な理由です。私は問題を変更しました。これを整理するのを手伝ってください。 – kragor

答えて

1

このような質問には、実際にコードの真の意図が伴うはずです。その理由は、いくつかの問題を完全に別々に解決すべきであるからです。スクリプト本体では、returnを使用してスクリプトを終了できます。別の観点から見ると、変数の状況を覚えておき、try/except構成の後に、望ましい動作を実装することができます。あるいは、あなたのexceptは、より明示的な種類の例外をテストするかもしれません。

以下のコードは、変数の1つのバリエーションを示しています。変数には関数が割り当てられます(割り当てられた関数はここで呼び出されません)。関数は(変数を介して)try/exceptの後にのみ呼び出されます。

#!python3 

import sys 

def do_nothing(): 
    print('Doing nothing.') 

def my_exit(): 
    print('sys.exit() to be called') 
    sys.exit()  

fn = do_nothing  # Notice that it is not called. The function is just 
        # given another name. 

try: 
    x = "blaabla" 
    y = "nnlfa" 
    if x != y: 
     fn = my_exit # Here a different function is given the name fn. 
         # You can directly assign fn = sys.exit; the my_exit 
         # just adds the print to visualize. 
    else: 
     print("Error!") 
except Exception: 
    print(Exception) 

# Now the function is to be called. Or it is equivalent to calling do_nothing(), 
# or it is equivalent to calling my_exit(). 
fn()  
1

os._exit()は、SystemExitまたは通常のPython出口処理なしでローレベルのプロセスを終了します。

関連する問題