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

Ich frage nicht, warum es einen Fehler wirft. Ich weiß, dass es exceptions.SystemExit aufwirft. Ich habe mich gefragt, ob es einen anderen Weg gibt, um zu gehen?Gibt es eine Alternative für sys.exit() in Python?

+5

aufgerufen. Was ist falsch an der Verwendung von 'sys.exit'? Wenn wir nicht wissen, warum Sie eine andere Lösung benötigen, können wir Ihnen keine vorschlagen, die für Sie funktioniert. –

+1

Ich verstehe die Down-Stimmen nicht, es ist eine legitime Frage. Wenn Sie das Löschen von Objekten vermeiden möchten, können Sie 'os._exit' verwenden. – tdelaney

+0

hallo @Morgan Thrapp.come on man.das funktioniert nicht.dies ist der Grund, ich möchte eine andere Lösung.Ich habe Änderungen in Frage.Klicken Sie mir helfen, dies zu sortieren. – kragor

Antwort

1

Einige Fragen wie diese sollten wirklich von der wahren Absicht hinter dem Code begleitet werden. Der Grund ist, dass einige Probleme ganz anders gelöst werden sollten. Im Skriptkörper kann das return zum Beenden des Skripts verwendet werden. Von einem anderen Standpunkt aus können Sie sich einfach an die Situation in einer Variablen erinnern und das gewünschte Verhalten nach dem try/except Konstrukt implementieren. Oder Ihre except kann explizitere Art einer Ausnahme testen.

Der folgende Code zeigt eine Variation der Variablen. Die Variable hat eine Funktion (die zugewiesene Funktion wird hier nicht aufgerufen). Die Funktion wird (über die Variable) erst nach dem 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() wird einen Low-Level-Prozess beenden ohne SystemExit oder normale Python-Exit-Verarbeitung.

Verwandte Themen