2010-07-25 18 views
9
 except ImportError as xcpt: 
      print "Import Error: " + xcpt.message 

आपको 2.6 में एक बहिष्करण चेतावनी देता है क्योंकि संदेश दूर जा रहा है। Stackoverflowपायथन अपवादों को मुद्रित करने का उचित तरीका क्या है?

आप आयात त्रुटि से कैसे निपटना चाहिए? (ध्यान दें, यह एक अंतर्निहित अपवाद, नहीं मेरी बनाने में से एक है ....)

उत्तर

9

सही दृष्टिकोण

xcpt.args 

केवल message विशेषता दूर जा रहा है है। अपवाद मौजूद रहेगा और इसमें तर्क जारी रहेगा।

इसे पढ़ें: http://www.python.org/dev/peps/pep-0352/ जिसमें messages विशेषता को हटाने के लिए कुछ तर्कसंगत हैं।

2

आप अपवाद प्रिंट करना चाहते हैं:

print "Couldn't import foo.bar.baz: %s" % xcpt 

अपवाद एक __str__ विधि को स्वयं की एक पठनीय संस्करण बनाने के लिए परिभाषित किया गया है। मैं "आयात त्रुटि:" से परेशान नहीं होगा क्योंकि अपवाद स्वयं ही प्रदान करेगा। यदि आप अपवाद में टेक्स्ट जोड़ते हैं, तो इसे उस कोड के आधार पर बनाएं जो आप निष्पादित करने का प्रयास कर रहे थे।

+0

जब मैं प्रिंट xcpt करता हूं, तो मुझे "जनजातियों का नाम नहीं है। मॉडल" जो मुझे अपवाद शीर्षक नहीं देता है, भले ही यह संदेश में निहित है। – boatcoder

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