"उचित" अपवाद वर्ग क्या है जब मेरे कार्यों में से एक None
का पता लगाता है जहां तर्क मान आवश्यक है? उदाहरण के लिए:कोई भी तर्क उठाने के लिए उचित अपवाद नहीं है यदि कोई भी तर्क
def MyFunction(MyArg1, MyArg2):
if not MyArg2:
raise ?Error?
मुझे लगता है कि मैंने देखा है TypeError
यहां इस्तेमाल किया है (और यह सच है कि मैं एक NoneType
जहां कुछ अन्य प्रकार की उम्मीद है प्राप्त कर रहा हूँ है), लेकिन है कि मुझे इस स्थिति के लिए के रूप में बहुत सही हड़ताल नहीं करता है जहां मुझे लगता है कि अपवाद अधिक स्पष्ट हो सकता है।
assert type(MyArg2) == int
या वैकल्पिक रूप से:
आपको इस तरह की बहस की जांच नहीं करनी चाहिए। किसी भी अपवाद के साथ असफल होने के साथ बस इसे और असफल होने दें। (और यदि आपको वास्तव में * यह करना चाहिए, तो 'TypeError' सही अपवाद है। इसे अधिक विशिष्ट बनाने के लिए एक स्पष्टीकरण स्ट्रिंग जोड़ें।) –
मैं शायद' TypeError' उठाऊंगा, अंतर्निहित पायथन अपवादों पर एक नज़र डालें प्रलेखन: http://docs.python.org/library/exceptions.html –
@ स्वेन: जैसा कि आप सुझाव देते हैं, मैं आम तौर पर करता हूं, लेकिन यह एक विशेष मामला है जिसमें मैं यह जांच करना चाहता हूं। –