2011-07-16 19 views
20
$ cat e.py 
raise Exception 
$ python e.py 
Traceback (most recent call last): 
    File "e.py", line 1, in <module> 
    raise Exception 
Exception 
$ echo $? 
1 

मैं जबकि अभी भी पूर्ण स्टैक ट्रेस डंपिंग 1 से 3 तक इस बाहर निकलने के कोड को बदलना चाहते हैं उठाया है जब। ऐसा करने का सबसे अच्छा तरीका क्या है?स्थापना बाहर निकलने के कोड एक अपवाद

उत्तर

35

traceback मॉड्यूल पर एक नज़र डालें। आप निम्न कर सकता है:

import sys, traceback 

try: 
    raise Exception() 
except: 
    traceback.print_exc() 
    sys.exit(3) 

इस कोड 3.

+2

साथ मानक त्रुटि और बाहर निकलने के लिए ट्रैस बैक लिखेंगे लेकिन वहाँ एक 'try' खोले बिना इस तरह के एक हैंडलर स्थापित करने के लिए रास्ता नहीं है/'खंड को छोड़कर? मैं केवल एक बार कुछ कॉल करना पसंद करूंगा, शायद एक विशिष्ट मॉड्यूल आयात करके, और फिर 'अपवाद WichCausesExitCode3()' को प्रत्येक उठाना प्रोग्राम से बाहर निकलना चाहिए। – Alfe

+0

http://is.gd/EFOWlO पर एक नज़र डालें जिसमें मैं उस पहलू को संबोधित करता हूं। – Alfe

+0

क्या आपका मतलब 'sys.exit()' था? [निकास] (https://docs.python.org/2/library/constants.html#exit) एक सहायक फ़ंक्शन है जो केवल इंटरैक्टिव दुभाषिया के लिए है। – OozeMeister

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