2011-02-25 14 views
83

अजगर में 'ई के रूप में अपवाद को छोड़कर' के बीच क्या फर्क है, वहाँ कोई अपवादअजगर में, और 'को छोड़कर अपवाद, ई'

except Exception, e: 

except Exception as e: 

यह की तरह लगता है 'ई' के रूप में पकड़ने के लिए दो तरीके है एक आगे जाने का उपयोग करने के लिए। पाइथन के किस संस्करण में यह परिवर्तन हुआ? कोई विचार क्यों?

+14

'रूप e' वाक्य रचना अजगर 2.6 में पेश किया गया था। – geoffspear

+3

बस Jython, जो इस पढ़ता है और "ई के रूप में अपवाद" के साथ सभी "अपवाद, ई" की जगह का फैसला करता है का उपयोग कर किसी के लिए एक नोट: यह अभी तक समर्थित नहीं है, Jython 2.5.2 के रूप में। देखें: http://stackoverflow.com/questions/3020966/jython-syntaxerror –

उत्तर

43

यह पीईपी पाइथन के व्याकरण में अस्पष्टताओं को खत्म करने, अपवाद वर्गों को सरल बनाने, अपवादों के लिए कचरा संग्रहण को सरल बनाने और पायथन 3.0 में भाषा के आकार को कम करने में मदद करने के लिए किए गए परिवर्तनों को प्रस्तुत करता है।

PEP 3110: "Catching Exceptions in Python 3000"

+0

लेकिन मैं 2.6 उपयोग कर रहा हूँ और मैं दोनों शैलियों के लिए एक उपयोग कर सकते है। मेरे सहकर्मी अपवाद, e' बजाय 'e' के रूप में अपवाद को छोड़कर (अटक) वह एक पुराने संस्करण का उपयोग क्योंकि छोड़कर' करने के लिए कोड से बदलना पड़ा। – Nathan

+3

नया व्याकरण 2.6 बैकपोर्टेड किया गया था, लेकिन पुराने व्याकरण नहीं हटाई गई। –

13

का उपयोग कर के रूप में "" यहाँ है के लिए पहला प्रस्ताव: http://mail.python.org/pipermail/python-dev/2006-March/062449.html। उन्होंने सोचा कि यह कोड

+2

यह एक अच्छा खोज था। ऐतिहासिक परिप्रेक्ष्य के माध्यम से इसे देखना हमेशा अच्छा होता है! –

12

को पढ़ने के लिए अधिक सहज होगा क्यों: Exception, e और Exception, TypeError के लिए संक्षिप्त उत्तर अलग करना मुश्किल है। लंबा जवाब: इग्नासिओ ने क्या कहा।

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