2010-09-08 12 views
5

şişe çerçevesinden çıkmak için yapılabilir. 'Sys.exit (1)' koyup bunu daha sonra yakalamanın umuyordum. sys.exit() sys.exit()

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

içeride işleyicileri çıkmak için bu piton mikro çerçeveler çıkmak için başka bir çözüm var mı? onun Denemek bu işlenen değil kaldırdı diğer bazı istisna ortaya çıkabilir, çünkü gerçekten sys.exist (1) deyimi, yürütür Onun olmadığını kontrol sonra işlenen Değilse

cevap

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'i yükseltiyor. Başka bir istisna getirmeyecek. Http://docs.python.org/library/sys.html#sys.exit – vrdhn

+0

adresine bakın, onun aranıp aranmadığını kontrol edin! – shahjapan

+0

oh tamam .. aslında sorun burada çok sayıda fn çağrısı ve denemesi dışında ... bazı şeyler istisna yiyor .. bazı işlemlerin yapıldığı görülüyor, ama benim istisna işleyicime geliyor. – vrdhn

0

Sınırlı deneyimimden sys.exit(), yeniden yükleyici kapatıldığında çalışmalıdır. Aksi takdirde, yeniden yükleyici kodu sys.exit()'da yeniden yükler ve uygulamanıza devam edilir. Tabii ki, sys.exit()'un neden çalışmadığı konusunda yanılmış olabilirim, fakat benim için yeniden yükleyiciyi kapattığımda çalıştı.

1

Bu durumun hala sizin için bir sorun olması durumunda, şişe çerçevesini temizlemenin temiz bir çözümü için cevabımı here numaralı telefona danışın.