2013-05-09 9 views
6

except: और except Exception: के बीच कोई अंतर है?छोड़कर अंतर: और अपवाद को छोड़कर:

except कोई अपवाद नहीं है जो कुछ भी सौदा कर सकते हैं?

+0

नहीं, वे वास्तव में कर रहे हैं कार्यात्मक रूप से समान :-) –

+0

, मुझे लगता है कि वापस ले - वे अलग हैं –

उत्तर

6

पायथन 2.5 के रूप में, एक नया BaseException है जो Exception के लिए बेस क्लास के रूप में कार्य करता है। नतीजतन, GeneratorExit की तरह कुछ है कि सीधे BaseException से इनहेन्ट्स except: द्वारा पकड़े जाएंगे लेकिन except Exception: द्वारा नहीं पकड़े जाएंगे।

+2

+1 'बेसएक्सप्शन' का जिक्र करने के लिए। एक महत्वपूर्ण बात यह है कि 'छोड़कर:' अपवाद को छोड़कर 'पकड़ता है:' 'कुंजीपटल इंटरप्ट' नहीं है। नंगे 'के लिबरल उपयोग को छोड़कर:' आपकी स्क्रिप्ट को रोकना मुश्किल हो सकता है! – kindall

+0

यह सही है। [कीबोर्डइंटरप्ट] (http://docs.python.org/2/library/exceptions.html#exceptions.KeyboardInterrupt) बेसएक्सप्शन से भी विरासत में मिलता है। – marcoseu

+0

SystemExit बेसएक्सक्रिप्शन से भी विरासत में आता है –

0

यह दस्तावेज़ एक अपवाद तब होता है

हैं जो अपवाद खंड को छोड़कर में नाम से मेल नहीं खाता से है, यह बाहरी कोशिश बयानों को दिया जाता है; यदि कोई हैंडलर पाया जाता है, तो यह एक अनचाहे अपवाद है और ऊपर दिखाए गए अनुसार संदेश के साथ निष्पादन रोकता है।

आप और भी विशिष्ट हो सकते हैं।

>>> while True: 
...  try: 
...   x = int(raw_input("Please enter a number: ")) 
...   break 
...  except ValueError: 
...   print "Oops! That was no valid number. Try again..." 

यहाँ, आप खंड को छोड़कर दर्ज केवल यदि आप नामित त्रुटि का सामना कर रहे, ValueError

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