try
और except
कभी भी अपवाद को फेंकने का कारण नहीं बनता है। वे केवल फेंके गए अपवादों को संभालते हैं।
अगर update
विफलता पर एक अपवाद फेंकता है, except
अपवाद को संभालेगा, फिर लूप जारी रहेगा (जब तक आप raise
. का उपयोग नहीं करते हैं except
. में खंड)।
अगर update
विफलता पर अपवाद नहीं फेंकता, बल्कि None
returns देता है (या ऐसा ही कुछ), और आप चाहते हैं इसे एक अपवाद फेंकने के लिए, आप इसका उपयोग कर सकते हैं:
if coll.update(...) is None: # or whatever it returns on failure
raise ValueError # or your custom Exception subclass
ध्यान दें कि आपको हमेशा यह निर्दिष्ट करना चाहिए कि आप किस अपवाद को पकड़ना चाहते हैं, और केवल उस कोड की पंक्तियों को घेरें जहां आप इसे try
के साथ पकड़ना चाहते हैं , ताकि आप अपने कोड में अन्य त्रुटियां न छिपाएं:
for record in coll.find(<some query here>):
#Code here
#...
#...
try:
coll.update({ '_id' : record['_id'] },record,safe=True)
except SpecificException:
#Handle exception here
except OtherSpecificException:
#Handle exception here
else:
#extra stuff to do if there was no exception
देखें try
कथन
, अंतर्निहित अपवाद
, और त्रुटियां और अपवाद
।