किस परिस्थितियों में java.util.zip.ZipFile.close() एक आईओएक्सप्शन फेंक देगा? इसकी विधि हस्ताक्षर इंगित करता है कि इसे फेंक दिया जा सकता है, लेकिन स्रोत कोड से ऐसा कोई प्रतीत नहीं होता है जहां यह हो सकता है, जब तक यह देशी कोड में न हो। उस बिंदु पर क्या सुधारात्मक कार्रवाई, यदि कोई हो, तो उस अपवाद को पकड़ा जा सकता है?जब java.util.zip.ZipFile.close() IOException फेंकता है?
उत्तर
API docs on ZipFile.close()
से:
इस ज़िप फ़ाइल समापन इनपुट के सभी बंद हो जाएगा पहले से
getInputStream
विधि का आमंत्रण द्वारा दिया स्ट्रीम।
और InputStream.close()
एक IOException
फेंकता है, तो ZipFile.close()
यह भी फेंक है। API docs for InputStream.close()
के अनुसार, यह IOException
फेंकता है "यदि कोई I/O त्रुटि उत्पन्न होती है"। यह बहुत वर्णनात्मक नहीं है लेकिन यह एक व्यापक नेट कास्टिंग कर रहा है। इनपुटस्ट्रीम फाइल सिस्टम, नेटवर्क, मेमोरी इत्यादि से आने वाली धाराओं का प्रतिनिधित्व कर सकते हैं। इनपुटस्ट्रीम में बफर शामिल हो सकते हैं जिन्हें फ़्लश करने की आवश्यकता होती है, सॉकेट को बंद करने की आवश्यकता होती है, संसाधन जिन्हें मुक्त करने की आवश्यकता होती है, ताले जिन्हें मुक्त करने की आवश्यकता होती है, आदि IOExceptions विभिन्न कारणों से होता है।
पास आदमी से (2):
नहीं पास की वापसी मूल्य() एक आम लेकिन फिर भी गंभीर प्रोग्रामिंग त्रुटि है जाँच। यह काफी संभव है कि पिछले लिखने (2) ऑपरेशन पर त्रुटियों की पहली बार अंतिम बंद() पर रिपोर्ट की गई है। फ़ाइल बंद करते समय रिटर्न वैल्यू की जांच नहीं कर सकती है जिससे डेटा की चुप हानि हो सकती है। यह विशेष रूप से एनएफएस और डिस्क कोटा के साथ मनाया जा सकता है।
एक पठनीय धारा को बंद करने के दौरान फेंक नहीं सकता है, जावा का आईओ ढांचा इसके लिए जांच नहीं कर सकता है क्योंकि इसमें स्थाई रूप से चेक बनाम लिखने वाली धाराएं नहीं हैं। – Joshua
मैं सुनिश्चित नहीं हूं लेकिन मुझे लगता है IOException फेंक दिया जाता है जब निम्न घटनाओं में से एक होती हैं:
- ज़िप फ़ाइल आवेदन के बाहर कुछ/किसी के द्वारा नष्ट किया गया। जब ड्राइव कि ज़िप फ़ाइल में शामिल है अनमाउंट किया है
- /काट दिया
एक बहुत अधिक घटनाओं कारण हो सकता है, लेकिन उन केवल दो मैं की अभी सोच सकता है।
लेकिन उन स्थितियों में से किसी एक को केवल पढ़ने-योग्य ज़िपफाइल को बंद करने में त्रुटि क्यों होगी? – EJP
मैंने उल्लेख नहीं किया कि अपवाद फेंकने के लिए ये एकमात्र शर्तें हैं। –
ZipFile.close()
के लिए दस्तावेज़ का कहना है:
इस ज़िप फ़ाइल समापन इनपुट के सभी बंद हो जाएगा पहले से getInputStream विधि का आमंत्रण द्वारा दिया स्ट्रीम।
संभवतः देशी close
विधि इनपुट इनपुट को बंद कर रही है।
close
InputStream
की विधि IOException
एक अपवाद के रूप में है।
सबसे अधिक संभावना कारण फाइल सिस्टम पर स्पेस स्थिति से
है जहां ज़िप फ़ाइल को अंतर्निहित फाइल सिस्टम में
त्रुटि लिखा जा रहा है। जब तक आप फ्लाई पर इसके चारों ओर कारण और काम की पहचान नहीं कर लेते, तब तक आप उपयोगकर्ता को स्थिति की रिपोर्ट कर सकते हैं।
'इनपुटस्ट्रीम' का उपयोग करते समय, आप * पढ़ रहे हैं *, * लेखन * नहीं कर रहे हैं, इसलिए लिप फ़ाइल के कारण डिस्क स्थान से बाहर चलना इस चर्चा की परिस्थितियों में 'IOException' का कारण नहीं हो सकता है । – Asaph
धन्यवाद, सही। –
- 1. जब सर्वरस्केट IOException फेंकता है और सर्वर को
- 2. SerialPort.Open() IOException फेंकता है - अनुरोधित सेवा
- 3. एंड्रॉयड Geocoder.getLocationFromName() फेंकता IOException: सेवा डिवाइस
- 4. JUnit नियम TemporaryFolder मनमाने ढंग से फेंकता एक IOException
- 5. क्या होता है जब एक थ्रेड अपवाद फेंकता है?
- 6. बिलाव फेंकता java.lang.UnsupportedOperationException जब मेरे आवेदन undeployed
- 7. IOException मैं
- 8. IOException को कैसे फेंकना है?
- 9. एमवीसी मिनी-प्रोफाइलर लॉकरेकर्सन एक्सेप्शन फेंकता है जब रूटकोलेक्शन
- 10. पायथन सूची.इंडेक्स अपवाद फेंकता है जब सूचकांक नहीं मिला
- 11. डब्ल्यूसीएफ सेवा प्रॉक्सी अपवाद फेंकता है जब [ऑपरेशन कंट्रैक्ट] विधि
- 12. jquery $ .ajax जेएस त्रुटि फेंकता है जब रिटर्न हेडर 404
- 13. कोई पॉपअप फेंकता है जब खोज कोई परिणाम नहीं देती
- 14. एक System.Net.Mail.Attachment के रूप में एक log4net लॉग ईमेल फेंकता IOException (लॉक प्रक्रिया)
- 15. सूची ConcurrentModificationException फेंकता है लेकिन सेट ConcurrentModificationException फेंकता नहीं है?
- 16. जावा: IOException जब एक ByteArrayOutputStream को लिखते हैं?
- 17. प्ले 2.0 IOException
- 18. जावा IOException: लिनक्स
- 19. Uri.TryCreate UriFormatException फेंकता है?
- 20. मैवेन फेंकता है "java.lang.OutOfMemoryError"
- 21. हाइबरनेट फेंकता है org.hibernate.persister.entity.SingleTableEntityPersister
- 22. जावा सॉकेट IOException - अनुमति
- 23. IOException क्लास पथ संसाधन
- 24. Parcelable IOException serializable वस्तु
- 25. IOException बनाम TimeoutException
- 26. EndGetResponse ArgumentNullException क्यों फेंकता है?
- 27. AppDomain.Uloadload Finalizer में फेंकता है?
- 28. शेड्यूल्डएक्शन सर्विस.विंड फेंकता है ArgumentException
- 29. IOException: बहुत सारी खुली फ़ाइलें
- 30. कन्स्ट्रक्शन में ArgumentNullException फेंकता है?
यदि अपवाद को पढ़ने() या लिखने() कॉल पर फेंक दिया गया है, तो मैं समझ सकता हूं कि पढ़ना या लिखना विफल रहा। लेकिन अगर अपवाद() पर अपवाद फेंक दिया गया है, तो क्या असफल रहा है? –