मेरे पास कोशिश है ... मेरे कोड में ब्लॉक को छोड़कर और जब कोई अपवाद फेंक दिया जाता है। मैं वास्तव में सिर्फ कोड के साथ जारी रखना चाहता हूं क्योंकि उस स्थिति में, सबकुछ अभी भी ठीक चलने में सक्षम है। समस्या यह है कि यदि आप इसे छोड़कर छोड़ते हैं: खाली ब्लॉक करें या #do कुछ भी नहीं, तो यह आपको एक वाक्यविन्यास त्रुटि देता है। मैं जारी रखने का उपयोग नहीं कर सकता क्योंकि यह एक लूप में नहीं है। क्या कोई ऐसा कीवर्ड है जिसका मैं उपयोग कर सकता हूं जो कोड को जारी रखने के लिए कहता है?पायथन: अपवाद को अनदेखा कैसे करें और आगे बढ़ें?
उत्तर
except:
pass
इस प्रयास करें:
try:
blah()
except:
pass
मानक "nop" पायथन में pass
कथन है:
try:
do_something()
except Exception:
pass
पिछले फेंका अपवाद के कारण
अजगर में याद किया जा रहा है, के कुछ अपवाद-फेंकने वाले कथन में शामिल वस्तुओं को अनिश्चित काल तक (वास्तव में, अगले अपवाद तक) रखा जा रहा है। मामले में यह आपके लिए महत्वपूर्ण है और (आमतौर पर) आप पिछले फेंका अपवाद को याद करने की जरूरत नहीं है, आप pass
के बजाय निम्न करने के लिए चाहते हो सकता है:
try:
do_something()
except Exception:
sys.exc_clear()
यह पिछले फेंका अपवाद साफ करता है।
यह स्वीकार किए जाने वाले एक से बेहतर जवाब है क्योंकि यह "छोड़कर:" के बजाय "अपवाद को छोड़कर" का उपयोग करता है, जैसा कि अन्य ने इंगित किया है कि अन्य चीजों को अनुचित रूप से निगलना होगा जिन्हें आप सिस्टमएक्सिट और कीबोर्ड इंटरप्ट की तरह पकड़ना नहीं चाहते हैं । – aculich
+1 यह त्रुटि को साफ़ करता है जो अवांछित चलने और अपवादों की अपेक्षा करते समय महत्वपूर्ण है – geographika
ध्यान दें कि 'exc_clear' को पायथन 3 में हटा दिया गया था। Https: // docs।python.org/3/whatsnew/3.0.html#index-22। पाइथन 3 में इसे संबोधित करने के कुछ तरीकों के लिए यहां देखें: https://cosmicpercolator.com/2016/01/13/exception-leaks-in-python-2-and-3/ – bcattle
ऐसा करने के लिए एक नया तरीका अजगर 3.4 में आ रहा है:
from contextlib import suppress
with suppress(Exception):
# your code
यहाँ प्रतिबद्ध है कि यह जोड़ा है: http://hg.python.org/cpython/rev/406b47c64480
और यहाँ लेखक, रेमंड Hettinger, इस बारे में बात कर रहा है और हर तरह की अन्य अजगर hotness (43:30 पर प्रासंगिक बिट): http://www.youtube.com/watch?v=OSGv2VnC0go
यदि आप नंगे except
कीवर्ड का अनुकरण करने के लिए और भी KeyboardInterrupt
तरह बातें -though आप आमतौर पर नहीं है-आप कर सकते थे उपेक्षा करना चाहता था with suppress(BaseException)
का उपयोग करें।
संपादित करें: ignored
को 3.4 रिलीज़ से पहले suppress
का नाम बदल दिया गया था।
मुझे यकीन नहीं है कि मुझे यह समाधान पसंद है ... मुझे लगता है कि हमने विचार किया है कि हमने 3 लाइनों को केवल 1 के साथ बदल दिया है (कोशिश करें, छोड़कर, और पास सभी एक में विलय हो गए हैं।) मुख्य बात यह है कि मैं इस बात पर ध्यान देता हूं कि यह एक नया कीवर्ड कैसे पेश करता है जो कुछ सही साबित करता है आपको शायद ऐसा नहीं करना चाहिए ... ऐसा लगता है कि आपको हमेशा कम से कम लॉग अप अपवादों को देखना चाहिए ... – ArtOfWarfare
जब कोई अपवाद उठाया जाता है तो यह कोशिश/पकड़ने के बाद कोड जारी रखेगा या जो भी ' 'ब्लॉक के साथ? – Mikhail
यह आपके कोड को 'कोशिश करें ... पकड़ो: पास' में लपेटने के बराबर है, इसलिए यदि ब्लॉक के अंदर कोई अपवाद उठाया गया है, तो ब्लॉक के अंत के बाद निष्पादन जारी रहेगा। –
- 1. वीआईएम टैग खोज और नेविगेशन में आगे कैसे बढ़ें?
- 2. 'चेकआउट के लिए आगे बढ़ें' कार्यक्रम?
- 3. कैसे आगे बढ़ें कपड़े का उपयोग कर हां?
- 4. सी ++ टेम्पलेट क्लास घोषित करने के लिए कैसे आगे बढ़ें?
- 5. सी ++, अपवाद को अनदेखा करें और कोड जारी रखें?
- 6. पायथन अपवाद कैसे लॉग करें?
- 7. पायथन raw_input newline को अनदेखा करें
- 8. पायथन Ignore अपवाद और जहां मैं
- 9. पायथन को अनदेखा करें .pyc फ़ाइलें
- 10. पायथन shutil.copytree - अनुमतियों को अनदेखा करें
- 11. वेबव्यू वापस, ताज़ा करें, आगे बढ़ें? बस काम नहीं करता है!
- 12. त्रुटि फ़ंक्शन पर कॉल को कैसे पकड़ें (और अनदेखा करें)?
- 13. ऑरैक ट्रिगर में अपवाद को अनदेखा करना
- 14. अपवाद में पायथन अपवाद
- 15. "सी ++ अपवाद विनिर्देशन से अनदेखा कैसे करें" चेतावनी
- 16. पायथन में अपवाद कैसे प्राप्त करें और अपवाद का संदर्भ प्राप्त करें, प्रकार जानने के बिना?
- 17. गिट और रेल: डेटाबेस को अनदेखा करें।
- 18. पायथन पाइप: निर्भरता को अनदेखा करने के लिए मजबूर करें
- 19. हाइबरनेट को विधि को अनदेखा कैसे करें?
- 20. jQuery सत्यापन और फ़ील्ड को अनदेखा करें
- 21. httplib.BadStatusLine अपवाद को कैसे ठीक करें?
- 22. एसवीएन अनदेखा - निर्देशिका की सामग्री को अनदेखा कैसे करें
- 23. पीछे और आगे बटन। कैसे?
- 24. जेएमटर में लॉगिन और लॉगआउट अनुरोधों को अनदेखा कैसे करें?
- 25. ClearCase और ग्रहण: फ़ाइलों को कैसे छिपाएं/अनदेखा करें?
- 26. पायथन: विशिष्ट अपवाद को पकड़ना
- 27. पायथन: अपवाद
- 28. अनावश्यक तर्कों को अनदेखा कैसे करें?
- 29. अभिभावक सीएसएस शैली को अनदेखा कैसे करें
- 30. विजुअल स्टूडियो अपवादों को अनदेखा करें?
अपवाद को छोड़कर: पास # महत्वपूर्ण अन्य अपवादों को निगलने के लिए महत्वपूर्ण नहीं है! –
@Aaron - मैं सहमत हूं, लेकिन सवाल यह नहीं था कि यह एक अच्छा/बुरा विचार – David
यह सिस्टमएक्सिट, कीबोर्ड इंटरप्ट और अन्य चीजें जो आप शायद पकड़ना नहीं चाहते हैं। – FogleBird