2010-09-08 10 views
5

मैं उम्मीद कर रहा था कि 'sys.exit (1)' डालने और इसे बाद में पकड़ने से यह काम करेगा।बोतल ढांचे से बाहर निकलने के लिए sys.exit() बनाया जा सकता है

xml_open() 
try: 
    run(reloader=True, host='localhost', port=8080) 
except SystemExit: 
    xml_save() 
    print "Exited ..." 

इन अजगर सूक्ष्म चौखटे से बाहर निकलने के अंदर संचालकों से बाहर निकलने के लिए किसी अन्य समाधान है?

उत्तर

1

तो इसकी तो संभाला नहीं जा रहा है कि क्या इसका वास्तव में sys.exist (1) बयान, कार्यान्वित की जाँच क्योंकि यह कुछ अन्य अपवाद उठाया जो संभाला जा रहा नहीं है यह कोशिश हो सकता है ....

xml_open() 
try: 
    run(reloader=True, host='localhost', port=8080) 
except SystemExit: 
    xml_save() 
    print "Exited ..." 
except Exception, e: 
    print "ohhh no.......",str(e) 
    import pdb 
    pdb.post_mortem() 
    sys.exit(-1) 
+2

sys.exit() SystemExit बढ़ाता है .. यह कोई अन्य अपवाद नहीं उठाएगा। Http://docs.python.org/library/sys.html#sys.exit – vrdhn

+0

देखें मेरा मतलब है कि इसे कॉल किया जा रहा है या नहीं! – shahjapan

+0

ओह ठीक है .. वास्तव में समस्या यहां एफएन कॉल की इतनी सारी परतों के साथ है और कोशिश करने के अलावा ... कुछ चीज अपवाद खाती है .. ऐसा लगता है कि कुछ हैंडलिंग किया जा रहा है, लेकिन यह मेरे अपवाद हैंडलर पर भी आ रहा है। – vrdhn

0

मेरे सीमित अनुभव से, sys.exit() को पुनः लोडर बंद होने पर काम करना चाहिए। अन्यथा, रीलोडर sys.exit() पर कोड पुनः लोड करेगा और आपका एप्लिकेशन फिर से शुरू हो जाएगा। बेशक, मैं गलत हो सकता हूं कि क्यों sys.exit() काम नहीं करता है, लेकिन मेरे लिए यह फिर से काम करता है जब मैंने रीलोडर बंद कर दिया।

1

यदि यह अभी भी आपके लिए एक मुद्दा है, तो बोतल ढांचे को रोकने के एक साफ समाधान के लिए मेरा उत्तर here देखें।

संबंधित मुद्दे