अजगर: एक को छोड़कर कई कोशिश करते हैं


197

पायथन में, क्या एक exceptकथन के लिए कई कथन होना संभव है try? जैसे कि :

try:
 #something1
 #something2
except ExceptionType1:
 #return xyz
except ExceptionType2:
 #return abc

7
@ Eva611: माफी नहीं मांगें। (१) इसे आजमाएँ। (२) अपने प्रश्न का उत्तर पोस्ट करें।
23.11

6
यह वास्तव में कारगर है। अजगर दुभाषिया के साथ यह कोशिश की ...
Eva611

38
@ Eva611 मुझे लगता है कि आपका सवाल ठीक था। पायथन दुभाषिया में एक उदाहरण स्थापित करने के बजाय Google के लिए यह मेरे लिए बहुत तेज़ था, इसलिए मुझे खुशी हुई कि आपने पूछा था। DrTysa और अन्य लोगों को आपको डांटने के बजाय त्वरित "हां" के साथ जवाब देना चाहिए था।
गल्रेंट

5
ज्यादातर समय आपका पहला अनुमान गलत होने वाला है, या सूक्ष्म बारीकियों को याद करने की ज़रूरत है, इसलिए (जैसे 15,000 अन्य) मैंने पहले Google की कोशिश की!
क्रिस

9
मैंने Google की कोशिश की और यह प्रश्न पाया। इसलिए, मुझे खुशी है कि किसी और ने इसे एसओ के रूप में एक सार्वजनिक मंच पर पूछा, और मुझे खुशी है कि इससे जुड़े अन्य लोगों ने कहा कि Google के एल्गोरिथ्म ने इसे मेरा पहला परिणाम माना है।
किंग्डियन जूल 27'16

जवाबों:


331

हाँ यह संभव है।

try:
   ...
except FirstException:
   handle_first_one()

except SecondException:
   handle_second_one()

except (ThirdException, FourthException, FifthException) as e:
   handle_either_of_3rd_4th_or_5th()

except Exception:
   handle_all_other_exceptions()

देखें: http://docs.python.org/tutorial/errors.html

"As" कीवर्ड का उपयोग किसी वेरिएबल में एरर को असाइन करने के लिए किया जाता है ताकि बाद में कोड में त्रुटि की अधिक गहन जांच की जा सके। यह भी ध्यान दें कि ट्रिपल अपवाद मामले के लिए कोष्ठक 3. अजगर में आवश्यक हैं। इस पृष्ठ में अधिक जानकारी है: एक पंक्ति में कई अपवादों को पकड़ो (ब्लॉक को छोड़कर)


76
यदि आप दोनों मामलों में एक ही काम करना चाहते हैं, तो यह है except (SomeError, OtherError):। ओपी प्रश्न का उत्तर नहीं देता है, लेकिन Google के माध्यम से यहां आने वाले कुछ लोगों की मदद कर सकता है।
मार्क

यदि उदाहरण के लिए आपको डेटा संरचना के कई संस्करणों को एक नई संरचना में बदलना है, तो उदाहरण के लिए कोड के संस्करणों को अपडेट करते समय, आप कोशिश को प्राप्त कर सकते हैं।
सैक्सोनी

5
यदि आप सभी अपवादों को संभालना चाहते हैं, तो आपको except Exception:सादे के बजाय उपयोग करना चाहिए except:। (प्लेन को छोड़कर भी पकड़ लेंगे SystemExitऔर KeyboardInterruptजो आमतौर पर आप नहीं चाहते हैं)
polvoazul

आप शायद इसके साथ eभी कुछ करना चाहते हैं क्योंकि आप इसे एक नाम देते हैं :)
HelloGoodbye
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.